{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline\n",
    "import numpy as np\n",
    "from sklearn.linear_model import Ridge\n",
    "import cv2\n",
    "from tqdm import tqdm\n",
    "\n",
    "import torch\n",
    "import torch.utils.data.dataloader as dataloader\n",
    "from torchvision import transforms\n",
    "from torchvision.datasets import MNIST, CIFAR10\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.utils.data.dataloader as dataloader\n",
    "import torch.optim as optim\n",
    "\n",
    "import pickle\n",
    "\n",
    "SEED = 1\n",
    "\n",
    "# CUDA?\n",
    "cuda = torch.cuda.is_available()\n",
    "\n",
    "# For reproducibility\n",
    "torch.manual_seed(SEED)\n",
    "\n",
    "if cuda:\n",
    "    torch.cuda.manual_seed(SEED)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(7, 7)\n",
      "(28, 28, 3)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# cv2.getGaborKernel(ksize, sigma, theta, lambda, gamma, psi, ktype)\n",
    "# ksize - size of gabor filter (n, n)\n",
    "# sigma - standard deviation of the gaussian function\n",
    "# theta - orientation of the normal to the parallel stripes\n",
    "# lambda - wavelength of the sunusoidal factor\n",
    "# gamma - spatial aspect ratio\n",
    "# psi - phase offset\n",
    "# ktype - type and range of values that each pixel in the gabor kernel can hold\n",
    "\n",
    "k = 7\n",
    "g_kernel = cv2.getGaborKernel((k, k), k/7.0, 1*np.pi/4, k/2.0, 0.5, 0, ktype=cv2.CV_32F)\n",
    "print(g_kernel.shape)\n",
    "\n",
    "# img = cv2.imread('data/Lenna.png', 0)\n",
    "img = cv2.imread('data/Lenna.png')\n",
    "img = cv2.resize(img, (28, 28), interpolation=cv2.INTER_CUBIC)\n",
    "filtered_img = cv2.filter2D(img, cv2.CV_8UC3, g_kernel)\n",
    "\n",
    "# plt.imshow(img, cmap='gray')\n",
    "# plt.show()\n",
    "print(filtered_img.shape)\n",
    "# plt.imshow(filtered_img, cmap='gray') #'filtered image'\n",
    "plt.imshow(filtered_img)\n",
    "plt.show()\n",
    "\n",
    "h, w = g_kernel.shape[:2]\n",
    "# g_kernel = cv2.resize(g_kernel, (3*w, 3*h), interpolation=cv2.INTER_CUBIC)\n",
    "plt.imshow(g_kernel, cmap='gray') #'gabor kernel (resized)'\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "28\n"
     ]
    }
   ],
   "source": [
    "# load MNIST data\n",
    "cuda = torch.cuda.is_available()\n",
    "\n",
    "train = MNIST('./data', train=True, download=True, transform=transforms.Compose([\n",
    "    transforms.ToTensor(), # ToTensor does min-max normalization. \n",
    "]), )\n",
    "\n",
    "p = train.train_data[0].numpy().shape[0]\n",
    "print(p)\n",
    "\n",
    "test = MNIST('./data', train=False, download=True, transform=transforms.Compose([\n",
    "    transforms.ToTensor(), # ToTensor does min-max normalization. \n",
    "]), )\n",
    "\n",
    "# Create DataLoader\n",
    "dataloader_args = dict(shuffle=True, batch_size=256,num_workers=4, pin_memory=True) if cuda else dict(shuffle=True, batch_size=64)\n",
    "train_loader = dataloader.DataLoader(train, **dataloader_args)\n",
    "test_loader = dataloader.DataLoader(test, **dataloader_args)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60000"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train.train_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## regression on filtered image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " [0.0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345] \n",
      " [0.0, 1.5707963267948966] \n",
      " [10, 4, 2]\n",
      "24\n"
     ]
    }
   ],
   "source": [
    "# generate gabor filters\n",
    "n_theta = 4\n",
    "n_psi = 2\n",
    "Theta = [i * np.pi /n_theta for i in range(n_theta)]\n",
    "Psi = [i * np.pi /n_psi for i in range(n_psi)]\n",
    "ksize = [3, 7, 15]\n",
    "# ksize = [5, 7, 17]\n",
    "rep_ct = [int(ceil(p/i)) for i in ksize]\n",
    "print('\\n', Theta, '\\n', Psi, '\\n', rep_ct)\n",
    "\n",
    "\n",
    "g_kernels = []\n",
    "for k in ksize:\n",
    "    for _theta in Theta:\n",
    "        for _psi in Psi:\n",
    "            g_kernel = cv2.getGaborKernel((k, k), k/2.0, _theta, k/2.0,\n",
    "                                          0.5, _psi, ktype=cv2.CV_32F)        \n",
    "            g_kernels.append(g_kernel)\n",
    "                \n",
    "print(len(g_kernels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 5000/5000 [00:02<00:00, 1767.77it/s]\n",
      "(5000, 18816) (5000, 784)\n",
      "(784, 18816)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "676.6555335649921\n"
     ]
    }
   ],
   "source": [
    "# ridge regression to get weights\n",
    "from sklearn.linear_model import Ridge\n",
    "\n",
    "all_wts = []\n",
    "num_sample = 5000 #len(train.data)\n",
    "\n",
    "y = train.data[:num_sample].numpy()\n",
    "y = y.reshape(y.shape[0], -1)\n",
    "\n",
    "X = []\n",
    "with tqdm(total=num_sample, file=sys.stdout) as pbar:\n",
    "    for i in range(num_sample):\n",
    "        img = train.data[i].numpy()\n",
    "        tmp = []\n",
    "        for g_kernel in g_kernels:\n",
    "            tmp.append(cv2.filter2D(img, cv2.CV_8UC3, g_kernel).flatten())\n",
    "        X.append(np.concatenate(tmp))\n",
    "        pbar.update(1)\n",
    "\n",
    "X = np.stack(X)\n",
    "print(X.shape, y.shape)\n",
    "\n",
    "clf = Ridge(alpha=0.1)\n",
    "clf.fit(X, y)\n",
    "\n",
    "wts = clf.coef_\n",
    "print(wts.shape)\n",
    "\n",
    "plt.imshow(X.dot(wts.T)[10].reshape(p, p))\n",
    "plt.show()\n",
    "plt.imshow(y[10].reshape(p, p))\n",
    "plt.show()\n",
    "print(np.linalg.norm(y[0] - X.dot(wts.T)[0]))\n",
    "\n",
    "np.save('cache/gabor_wts.npy', wts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(18816, 784)\n",
      "0.9640751609483953\n",
      "(18816, 450)\n",
      "(450, 784)\n"
     ]
    }
   ],
   "source": [
    "all_wts = np.load('cache/gabor_wts.npy').T\n",
    "print(all_wts.shape)\n",
    "from sklearn.decomposition import PCA\n",
    "num_pc = 450\n",
    "pca = PCA(n_components=num_pc)\n",
    "principalComponents = pca.fit_transform(all_wts)\n",
    "print(pca.explained_variance_ratio_.sum())\n",
    "print(principalComponents.shape)\n",
    "print(pca.components_.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 450/450 [00:01<00:00, 369.39it/s]\n",
      "(100000, 28, 28)\n",
      "--Return--\n",
      "> <ipython-input-21-f38fd950398b>(17)<module>()->None\n",
      "-> import pdb; pdb.set_trace()\n",
      "(Pdb) plt.imshow(noise[0])\n",
      "<matplotlib.image.AxesImage object at 0x7f9494de8978>\n",
      "(Pdb) plt.show()\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(Pdb) q\n"
     ]
    },
    {
     "ename": "BdbQuit",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mBdbQuit\u001b[0m                                   Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-21-f38fd950398b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     15\u001b[0m \u001b[0mnoise\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnoise\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_noise\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     16\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnoise\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mpdb\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mpdb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_trace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     18\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cache/gabor_noise.npy'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnoise\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/mehdi/lib/python3.6/bdb.py\u001b[0m in \u001b[0;36mtrace_dispatch\u001b[0;34m(self, frame, event, arg)\u001b[0m\n\u001b[1;32m     53\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdispatch_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     54\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mevent\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'return'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 55\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdispatch_return\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     56\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mevent\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'exception'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     57\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdispatch_exception\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/mehdi/lib/python3.6/bdb.py\u001b[0m in \u001b[0;36mdispatch_return\u001b[0;34m(self, frame, arg)\u001b[0m\n\u001b[1;32m     97\u001b[0m             \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     98\u001b[0m                 \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mframe_returning\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquitting\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mBdbQuit\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    100\u001b[0m             \u001b[0;31m# The user issued a 'next' or 'until' command.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    101\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstopframe\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mframe\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstoplineno\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mBdbQuit\u001b[0m: "
     ]
    }
   ],
   "source": [
    "num_noise = 100000\n",
    "noise_wts = np.random.rand(num_noise, num_pc)\n",
    "\n",
    "with tqdm(total=num_pc, file=sys.stdout) as pbar:\n",
    "    for i in range(num_pc):\n",
    "        cur_max = pca.components_[i].max()\n",
    "        cur_min = pca.components_[i].min()\n",
    "        cur_wts = noise_wts[:, i]\n",
    "        cur_wts = (cur_wts - cur_wts.min())/(cur_wts.max() - cur_wts.min())\n",
    "        noise_wts[:, i] = cur_wts * (cur_max - cur_min) + cur_min\n",
    "    \n",
    "        pbar.update(1)\n",
    "\n",
    "noise = (noise_wts.dot(principalComponents.T)).dot(all_wts)\n",
    "noise = noise.reshape(num_noise, p, p)\n",
    "print(noise.shape)\n",
    "import pdb; pdb.set_trace()\n",
    "np.save('cache/gabor_noise.npy', noise)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## regression on wavelets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " [0.0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345] \n",
      " [0.0, 1.5707963267948966] \n",
      " [10, 4, 2]\n",
      "960\n",
      "0 10 3\n",
      "100%|██████████| 100/100 [00:00<00:00, 85528.22it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 97451.30it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 80258.40it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 110434.54it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 101902.43it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 79815.49it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 94508.88it/s]\n",
      "100%|██████████| 100/100 [00:00<00:00, 75315.21it/s]\n",
      "800 4 7\n",
      "100%|██████████| 16/16 [00:00<00:00, 23822.81it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 31198.91it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 30840.47it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 32171.08it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 19616.74it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 22512.20it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 31198.91it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 17291.64it/s]\n",
      "928 2 15\n",
      "100%|██████████| 4/4 [00:00<00:00, 9000.65it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 4860.14it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 9198.04it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6912.74it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 5372.15it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6822.78it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 9162.87it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 9703.42it/s]\n"
     ]
    }
   ],
   "source": [
    "# generate gabor filters\n",
    "n_theta = 4\n",
    "n_psi = 2\n",
    "Theta = [i * np.pi /n_theta for i in range(n_theta)]\n",
    "Psi = [i * np.pi /n_psi for i in range(n_psi)]\n",
    "ksize = [3, 7, 15]\n",
    "# ksize = [5, 15, 29]\n",
    "rep_ct = [int(ceil(p/i)) for i in ksize]\n",
    "print('\\n', Theta, '\\n', Psi, '\\n', rep_ct)\n",
    "\n",
    "\n",
    "g_kernels = []\n",
    "for i in range(len(rep_ct)):\n",
    "    for _theta in Theta:\n",
    "        for _psi in Psi:\n",
    "            for rep in range(rep_ct[i]**2):\n",
    "                k = ksize[i]\n",
    "                g_kernel = cv2.getGaborKernel((k, k), k/7.0, _theta, k/2.0,\n",
    "                                              0.5, _psi, ktype=cv2.CV_32F) \n",
    "                g_kernel = (g_kernel - g_kernel.min())/(g_kernel.max()-g_kernel.min())\n",
    "                g_kernels.append(g_kernel)\n",
    "                \n",
    "print(len(g_kernels))\n",
    "\n",
    "img_kernels = []\n",
    "ctr = 0\n",
    "for idx in range(len(rep_ct)):\n",
    "    cur_ct = rep_ct[idx]\n",
    "    k = ksize[idx]\n",
    "    print(ctr, cur_ct, k)\n",
    "    for _ in range(n_theta * n_psi):\n",
    "        with tqdm(total=cur_ct**2, file=sys.stdout) as pbar:\n",
    "            for i in range(cur_ct):\n",
    "                for j in range(cur_ct):\n",
    "#                     import pdb;pdb.set_trace()\n",
    "                    tmp = np.zeros((p, p))\n",
    "                    size_i = min(k*(i+1), p) - k*i\n",
    "                    size_j = min(k*(j+1), p) - k*j\n",
    "                    tmp[k*i: k*i + size_i, k*j: k*j + size_j] = g_kernels[ctr][:size_i, :size_j]\n",
    "                    img_kernels.append(tmp)\n",
    "                    ctr += 1\n",
    "                    pbar.update(1)\n",
    "            \n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "len(img_kernels)\n",
    "plt.imshow(img_kernels[850])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(784, 960) (784, 60000)\n",
      "(60000, 960)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2010.9444903176893\n"
     ]
    }
   ],
   "source": [
    "# ridge regression to get weights\n",
    "from sklearn.linear_model import Ridge\n",
    "\n",
    "all_wts = []\n",
    "num_sample = len(train.train_data)\n",
    "\n",
    "X = np.stack(img_kernels, -1)\n",
    "X = X.reshape(-1, X.shape[-1])\n",
    "\n",
    "y = train.train_data[:num_sample].permute(1, 2, 0).numpy()\n",
    "y = y.reshape(-1, y.shape[-1])\n",
    "\n",
    "print(X.shape, y.shape)\n",
    "\n",
    "clf = Ridge(alpha=0.1)\n",
    "clf.fit(X, y)\n",
    "\n",
    "wts = clf.coef_\n",
    "print(wts.shape)\n",
    "# import pdb; pdb.set_trace()\n",
    "\n",
    "img_id = 5\n",
    "plt.imshow(wts.dot(X.T)[img_id].reshape(p, p))\n",
    "plt.show()\n",
    "plt.imshow(y[:, img_id].reshape(p, p))\n",
    "plt.show()\n",
    "print(np.linalg.norm(y[:, img_id] - wts.dot(X.T)[img_id]))\n",
    "\n",
    "np.save('cache/gabor_wts.npy', wts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9609754868501394\n",
      "(60000, 250)\n",
      "(250, 960)\n"
     ]
    }
   ],
   "source": [
    "all_wts = np.load('cache/gabor_wts.npy')\n",
    "from sklearn.decomposition import PCA\n",
    "num_pc = 250\n",
    "pca = PCA(n_components=num_pc)\n",
    "principalComponents = pca.fit_transform(all_wts)\n",
    "print(pca.explained_variance_ratio_.sum())\n",
    "print(principalComponents.shape)\n",
    "print(pca.components_.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 250/250 [00:14<00:00, 16.86it/s]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(1000000, 960)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_noise = 1000000\n",
    "noise_wts = np.random.rand(num_noise, num_pc)\n",
    "\n",
    "with tqdm(total=num_pc, file=sys.stdout) as pbar:\n",
    "    for i in range(num_pc):\n",
    "        cur_max = principalComponents[:, i].max()\n",
    "        cur_min = principalComponents[:, i].min()\n",
    "        cur_wts = noise_wts[:, i]\n",
    "        cur_wts = (cur_wts - cur_wts.min())/(cur_wts.max() - cur_wts.min())\n",
    "        noise_wts[:, i] = cur_wts * (cur_max - cur_min) + cur_min\n",
    "    \n",
    "        pbar.update(1)\n",
    "\n",
    "noise_gabor_wts = noise_wts.dot(pca.components_)\n",
    "noise_gabor_wts.shape\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1000000/1000000 [00:10<00:00, 95102.83it/s]\n",
      "(1000000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "X = np.stack(img_kernels)\n",
    "X = X.reshape(X.shape[0], -1)\n",
    "noise = noise_gabor_wts.dot(X).reshape(num_noise, p, p)\n",
    "\n",
    "with tqdm(total=num_noise, file=sys.stdout) as pbar:\n",
    "    for i in range(num_noise):\n",
    "        noise[i] = (noise[i] - noise[i].min())/(noise[i].max() - noise[i].min())\n",
    "        pbar.update(1)\n",
    "\n",
    "print(noise.shape)\n",
    "np.save('cache/gabor_noise.npy', noise)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# mnist noise examples\n",
    "noise = np.load('cache/gabor_noise.npy')\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for i in range(10):\n",
    "    a = noise[i]\n",
    "    plt.subplot(2, 5, i+1)\n",
    "    plt.axis('off')\n",
    "    plt.imshow(a)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## (common part) pass noise through CNN model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "IncompatibleKeys(missing_keys=[], unexpected_keys=[])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class Model(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Model, self).__init__()\n",
    "        self.conv1 = nn.Conv2d(1, 20, 5, 1)\n",
    "        self.conv2 = nn.Conv2d(20, 50, 5, 1)\n",
    "        self.fc1 = nn.Linear(4*4*50, 500)\n",
    "        self.fc2 = nn.Linear(500, 10)\n",
    "\n",
    "    def forward(self, x):\n",
    "        x1 = F.relu(self.conv1(x))\n",
    "        x = F.max_pool2d(x1, 2, 2)\n",
    "        x2 = F.relu(self.conv2(x))\n",
    "        x = F.max_pool2d(x2, 2, 2)\n",
    "        x = x.view(-1, 4*4*50)\n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = self.fc2(x)\n",
    "        return x, x2, x1\n",
    "    \n",
    "model = Model()\n",
    "if cuda:\n",
    "    model.cuda() # CUDA!\n",
    "# optimizer = optim.Adam(model.parameters(), lr=1e-3) \n",
    "# Load and use the best model\n",
    "bst_mdl = 'cache/models/MNIST_epoch_12.pth'\n",
    "model.load_state_dict(torch.load(bst_mdl)['model'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100/100 [00:02<00:00, 37.90it/s]\n",
      "0 : 91646\n",
      "1 : 2436\n",
      "2 : 108908\n",
      "3 : 168554\n",
      "4 : 126963\n",
      "5 : 73669\n",
      "6 : 18064\n",
      "7 : 94379\n",
      "8 : 270481\n",
      "9 : 44900\n"
     ]
    }
   ],
   "source": [
    "noise = np.load('cache/gabor_noise.npy')\n",
    "num_noise = noise.shape[0]\n",
    "num_cls = 10\n",
    "\n",
    "noise_data = {}\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = []\n",
    "\n",
    "batch_size = 10000\n",
    "model.eval()\n",
    "with tqdm(total=num_noise//batch_size, file=sys.stdout) as pbar:\n",
    "    for i in range(num_noise//batch_size):\n",
    "        data = torch.from_numpy(noise[i * batch_size: (i+1) * batch_size]).float()\n",
    "        if cuda:\n",
    "            data = data.cuda()\n",
    "        with torch.no_grad():\n",
    "            pred = model(data[:,None,...])[0].max(1)[1]\n",
    "            for cls in range(num_cls):\n",
    "                noise_data[cls].append(data[pred==cls].cpu())\n",
    "        pbar.update(1)\n",
    "\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = torch.cat(noise_data[cls])\n",
    "    print(cls, ':', noise_data[cls].shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFSCAYAAACaFsJEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9ebRmVXnu+359u9vau5pdLVQVRSsYBLE5BqOCilxNjFGjDow9YoZ4DkaxCaBGuRnHcyS51xyNDSrBJjDS6AWNDhGjCDZI3xXV7eqrdr+/vr1/cOXcOZ+H7Jkq1v42Vc9vDP74Xuaaa6653jXXmrXnM59Yt9vtmhBCCCGEEEI8zcR73QAhhBBCCCHEsYkmG0IIIYQQQohI0GRDCCGEEEIIEQmabAghhBBCCCEiQZMNIYQQQgghRCRosiGEEEIIIYSIBE02hBBCCCGEEJGgyYYQQgghhBAiEjTZEEIIIYQQQkSCJhuBlEolu/zyy21sbMyy2aydddZZ9q1vfavXzRLHCfPz8/YXf/EXdsEFF9jo6KjFYjG7+uqre90scRzw4x//2N72trfZySefbIVCwVavXm2vfvWr7Te/+U2vmyaOE+655x676KKLbN26dZbL5Wx4eNie97zn2Q033NDrponjlC996UsWi8WsWCz2uinPCDTZCOSP/uiP7Gtf+5pdddVVduutt9o555xjb3zjG+3GG2/sddPEccDk5KR98YtftHq9bq95zWt63RxxHPF3f/d3tnPnTnv/+99vt9xyi1133XV26NAhO++88+zHP/5xr5snjgNmZmZs7dq19ulPf9puueUW+/rXv24bNmywt7zlLfapT32q180Txxl79+61K664wsbGxnrdlGcMsW632+11I5Y6t9xyi1100UV244032hvf+MYn4xdccIE9+OCDNj4+bolEooctFMc6v3tMY7GYTUxM2OjoqF111VX664aInEOHDtny5cudWKlUsk2bNtnpp59uP/rRj3rUMnG8c95559m+fftsfHy8100RxxEXX3yxxWIxGx4etptuuslKpVKvm7Tk0V82Avinf/onKxaL9rrXvc6J/9mf/Znt27fP7rrrrh61TBwvxGIxi8VivW6GOA7xJxpmZsVi0U499VTbvXt3D1okxBOMjIxYMpnsdTPEccQNN9xgt99+u33+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T9hvfvMb+5d/+ZdeN1Ecw/zqV7+yF73oRXbuuefaN77xDet2u/bXf/3X9pKXvMRuu+02e97zntfrJi55NNn4T7B582Y777zzet0McZyxd+9ee9e73mXvfve77fOf//yTcX/iK0RUbNy40TZu3OjEbr/9dpuYmLCPfexjlkgketQycTxw4403Wq1Ws5tvvvnJPPyDP/gD279/v33xi1+06elpGxoa6nErxbHKxz/+cRscHLTvf//7ls/nzczspS99qZ144ol2xRVX6C8cAWgZlRBLnC996UtWLpftQx/6UK+bIsSTfPnLX7ZYLGZve9vbet0UcYyTSqXMzGxgYMCJDw4OWjwet3Q63YtmieOEn//853b++ec/OdEwM+vr67MXvehFdscdd9j+/ft72LpnBpps/Ce47LLLLJlMWn9/v1144YX2s5/9rNdNEscBP/3pT214eNgeeeQRO+ussyyZTNry5cvtPe95j83NzfW6eeI4ZHZ21m666SZ7yUteYieccEKvmyOOcS655BIbHBy0Sy+91LZv327z8/P2ve99z77whS/YZZddZoVCoddNFMcwjUbDMpkMxH8Xu//++xe7Sc84NNkIYGBgwN7//vfbF77wBbvtttvsuuuus927d9v5559vP/jBD3rdPHGMs3fvXqtUKva6173OXv/619uPfvQj++AHP2hf//rX7ZWvfKV1u91eN1EcZ3zzm9+0arVqb3/723vdFHEcsGHDBvvFL35hDzzwgG3cuNH6+/vt4osvtksuucSuu+66XjdPHOOceuqpduedd1qn03ky1mq17K677jIzs8nJyV417RlDrKsvlSNiZmbGzjjjDBseHrZ77723180RxzAnnXSSbd261T7zmc/Yhz/84Sfj1113nV1++eX2wx/+0F760pf2sIXieOOcc86xHTt22N69e+m/+AnxdLJz50572cteZitWrLAPfOADNjo6anfddZd96lOfsj/+4z+2L3/5y71uojiG+cpXvmJvf/vb7dJLL7WPfvSj1ul07JprrrHrr7/e2u22fetb37LXv/71vW7mkkZ/2ThCBgcH7VWvepXdd999Vq1We90ccQyzbNkyMzO78MILnfgrXvEKMzO7++67F71N4vjlvvvus1//+tf25je/WRMNsSh8+MMftrm5OfvBD35gr33ta+1FL3qRffCDH7TPfe5z9pWvfMVuv/32XjdRHMO87W1vs2uvvda+8Y1v2Jo1a2zdunX20EMP2RVXXGFmZqtXr+5xC5c+mmwcBb/7o1AsFutxS8SxzLOe9Swa/13+xeN6jMXi8bt/RX7HO97R45aI44V77rnHTj31VNBm/G7L5QceeKAXzRLHER/60IdsYmLC7r//ftu5c6fdcccdNj09bYVCwc4+++xeN2/Jo6+UI2R6etq+973v2VlnnWXZbLbXzRHHMK997WvNzOzWW2914rfccouZmbZjFotGvV63G264wc4991x5DIlFY2xszB588EErlUpO/Be/+IWZma1Zs6YXzRLHGZlMxk4//XRbv369jY+P27e//W175zvfablcrtdNW/LIZyOAP/3TP7V169bZc57zHBsZGbGtW7faZz/7WTt48KBdf/31vW6eOMa54IIL7OKLL7ZPfOIT1ul07LzzzrNf//rXO7Oj3AAAIABJREFUds0119irXvUqe+ELX9jrJorjhH/+53+2qakp/VVDLCqXX365veY1r7GXvexl9oEPfMBGRkbszjvvtM985jN26qmnPrmkVIgoeOCBB+zmm2+25zznOZbJZOzee++1a6+91jZv3myf/OQne928ZwQSiAdw7bXX2re//W3bsWOHlUolGx4ethe+8IV25ZVXyjlXLArVatWuueYau/HGG23//v02NjZmb3rTm+yqq67SunmxaFxwwQVP7ivf19fX6+aI44jbbrvNrr32WrvvvvtsdnbW1q5daxdffLFdeeWVT+rahIiCxx57zN75znfaAw88YKVSydatW2dveMMb7MMf/rC2XQ5Ekw0hhBBCCCFEJEizIYQQQgghhIgETTaEEEIIIYQQkaDJhhBCCCGEECISNNkQQgghhBBCRIImG0IIIYQQQohI0GRDCCGEEEIIEQnBpn7Puvx/QizWwXJdb/oSa5MyCYzRumKBjfOIt3A333YaK4sFbPrL2tUhvcau04ddd7wZVn88pH7WXyTGyvn1+/fxqbjvcx8IK3iUbPkE5p+Re8OuF2D3nR3nl2N9EtoGds6AZ4XRyoXtVp0suw1pk+MSdWwsy1P/OukzzNpP+qKTJO1ouAVD8+/RqxYn/8zMzrrsfxzRcXwMIeNRZ+H72o3hcfF2WD6EnLNZxDKZGayfjVHtLB6brLjHhow9ZmbtDLnO5sJ1deNh/ROSX6yvY2Sn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\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "noise_avg = []\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for cls in range(num_cls):\n",
    "#     a = noise_data[cls].mean(0).numpy()\n",
    "    a = torch.sqrt((noise_data[cls]**2).mean(0)).numpy()\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    noise_avg.append(a)\n",
    "    plt.subplot(2, 5, cls+1)\n",
    "    plt.axis('off')\n",
    "    plt.title(str(cls))\n",
    "    plt.imshow(a)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_confusion_matrix( y_pred, y_true, classes,\n",
    "                          normalize=False,\n",
    "                          title=None,\n",
    "                          cmap=plt.cm.Blues):\n",
    "  \n",
    "    import sklearn\n",
    "    from sklearn import metrics\n",
    "#     cf = sklearn.metrics.confusion_matrix(pred.numpy(), gt.numpy())  \n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \"\"\"\n",
    "    if not title:\n",
    "        if normalize:\n",
    "            title = 'Normalized confusion matrix'\n",
    "        else:\n",
    "            title = 'Confusion matrix, without normalization'\n",
    "  \n",
    "    # Compute confusion matrix\n",
    "    cm = sklearn.metrics.confusion_matrix(y_pred, y_true)\n",
    "    # Only use the labels that appear in the data\n",
    "#     classes = classes[unique_labels(y_true, y_pred)]\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / (cm.sum(axis=1)[:, np.newaxis] )\n",
    "#         print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        pass\n",
    "#         print('Confusion matrix, without normalization')\n",
    "#     print(cm)\n",
    "    fig, ax = plt.subplots()\n",
    "    im = ax.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "#     ax.figure.colorbar(im, ax=ax)\n",
    "    # We want to show all ticks...\n",
    "    ax.set(xticks=np.arange(cm.shape[1]+1)-0.5,\n",
    "           yticks=np.arange(cm.shape[0]+1)-0.5,\n",
    "           # ... and label them with the respective list entries\n",
    "           xticklabels=classes, yticklabels=classes,\n",
    "           title=title,\n",
    "           ylabel='Predicted label',\n",
    "           xlabel='True label')\n",
    "    # Rotate the tick labels and set their alignment.\n",
    "    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\",\n",
    "             rotation_mode=\"anchor\")\n",
    "    # Loop over data dimensions and create text annotations.\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i in range(cm.shape[0]):\n",
    "        for j in range(cm.shape[1]):\n",
    "            ax.text(j, i, format(cm[i, j], fmt),\n",
    "                    ha=\"center\", va=\"center\",\n",
    "                    color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "    fig.tight_layout()\n",
    "    return ax\n",
    "np.set_printoptions(precision=2)\n",
    "# # Plot non-normalized confusion matrix\n",
    "# plot_confusion_matrix(y_test, y_pred, classes=class_names,\n",
    "#                       title='Confusion matrix, without normalization')\n",
    "# # Plot normalized confusion matrix\n",
    "# plot_confusion_matrix(y_test, y_pred, classes=class_names, normalize=True,\n",
    "#                       title='Normalized confusion matrix')\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10, 784)\n",
      "Accuracy:  0.3555\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f58705b6a58>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##### Dot product NN #####\n",
    "\n",
    "avg_vec = np.stack(noise_avg).reshape(num_cls, -1)\n",
    "print(avg_vec.shape)\n",
    "\n",
    "pred = []\n",
    "gt = []\n",
    "templates = torch.from_numpy(avg_vec).permute(1, 0)\n",
    "templates = templates / torch.norm(templates, p=2, dim=0)\n",
    "\n",
    "data = test.test_data.float()\n",
    "gt = test.test_labels\n",
    "x = data.view(data.shape[0], -1)\n",
    "x = x / torch.cat([torch.norm(x, p=2, dim=1).view(-1,1)] * x.shape[1], 1)\n",
    "pred = torch.mm(x, templates).max(1)[1]\n",
    "\n",
    "acc = (pred==gt).sum().type(dtype=torch.float64) / len(gt)\n",
    "print('Accuracy: ', acc.numpy())\n",
    "plot_confusion_matrix(pred.numpy(), gt.numpy(), classes=list(range(10)), normalize=True,  title='Normalized confusion matrix using white noise average')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([10000])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.test_labels.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### CIFAR-10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n",
      "Files already downloaded and verified\n",
      "class number: 10\n",
      "image size: 32\n"
     ]
    }
   ],
   "source": [
    "# Create DataLoader\n",
    "# transform = transforms.Compose(\n",
    "#     [transforms.ToTensor(),\n",
    "#      transforms.Normalize((0.4914, 0.4822, 0.4465), (0.247, 0.243, 0.261))])\n",
    "transform = transforms.ToTensor()\n",
    "\n",
    "train = CIFAR10('./data', train=True, download=True, transform=transform)\n",
    "test = CIFAR10('./data', train=False, download=True, transform=transform)\n",
    "\n",
    "dataloader_args = dict(batch_size=256,num_workers=4, \n",
    "                       pin_memory=True) if cuda else dict(batch_size=64)\n",
    "train_loader = dataloader.DataLoader(train, shuffle=True, **dataloader_args)\n",
    "test_loader = dataloader.DataLoader(test, shuffle=False, **dataloader_args)\n",
    "\n",
    "classes = ('plane', 'car', 'bird', 'cat',\n",
    "           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')\n",
    "num_cls = len(classes)\n",
    "p = train.train_data.shape[1]\n",
    "print('class number: {}'.format(num_cls))\n",
    "print('image size: {}'.format(p))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "50000"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train.train_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " [0.0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345] \n",
      " [0.0, 1.5707963267948966] \n",
      " [11, 7, 4, 2]\n",
      "1520\n",
      "0 11 3\n",
      "100%|██████████| 121/121 [00:00<00:00, 133415.03it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 146088.31it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 130801.75it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 98240.57it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 128418.72it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 102922.49it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 83706.22it/s]\n",
      "100%|██████████| 121/121 [00:00<00:00, 82575.79it/s]\n",
      "968 7 5\n",
      "100%|██████████| 49/49 [00:00<00:00, 70191.56it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 70071.90it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 45050.61it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 47289.67it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 55576.23it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 55726.92it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 52455.56it/s]\n",
      "100%|██████████| 49/49 [00:00<00:00, 53423.68it/s]\n",
      "1360 4 9\n",
      "100%|██████████| 16/16 [00:00<00:00, 13189.64it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 16985.29it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 15668.66it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 21585.35it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 14441.33it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 19124.78it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 17408.27it/s]\n",
      "100%|██████████| 16/16 [00:00<00:00, 23730.15it/s]\n",
      "1488 2 17\n",
      "100%|██████████| 4/4 [00:00<00:00, 6460.23it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6384.02it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6319.10it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6290.67it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6150.01it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 9559.67it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 6873.09it/s]\n",
      "100%|██████████| 4/4 [00:00<00:00, 7013.89it/s]\n"
     ]
    }
   ],
   "source": [
    "# generate gabor filters ==> each channel has these many\n",
    "\n",
    "n_theta = 4\n",
    "n_psi = 2\n",
    "Theta = [i * np.pi /n_theta for i in range(n_theta)]\n",
    "Psi = [i * np.pi /n_psi for i in range(n_psi)]\n",
    "ksize = [3, 5, 9, 17]\n",
    "# ksize = [5, 15, 29]\n",
    "rep_ct = [int(ceil(p/i)) for i in ksize]\n",
    "print('\\n', Theta, '\\n', Psi, '\\n', rep_ct)\n",
    "\n",
    "g_kernels = []\n",
    "for i in range(len(rep_ct)):\n",
    "    for _theta in Theta:\n",
    "        for _psi in Psi:\n",
    "            for rep in range(rep_ct[i]**2):\n",
    "                k = ksize[i]\n",
    "                g_kernel = cv2.getGaborKernel((k, k), k/7.0, _theta, k/2.0,\n",
    "                                              0.5, _psi, ktype=cv2.CV_32F) \n",
    "                g_kernel = (g_kernel - g_kernel.min())/(g_kernel.max()-g_kernel.min())\n",
    "                g_kernels.append(g_kernel)\n",
    "                \n",
    "print(len(g_kernels))\n",
    "\n",
    "img_kernels = []\n",
    "ctr = 0\n",
    "for idx in range(len(rep_ct)):\n",
    "    cur_ct = rep_ct[idx]\n",
    "    k = ksize[idx]\n",
    "    print(ctr, cur_ct, k)\n",
    "    for _ in range(n_theta * n_psi):\n",
    "        with tqdm(total=cur_ct**2, file=sys.stdout) as pbar:\n",
    "            for i in range(cur_ct):\n",
    "                for j in range(cur_ct):\n",
    "#                     import pdb;pdb.set_trace()\n",
    "                    tmp = np.zeros((p, p))\n",
    "                    size_i = min(k*(i+1), p) - k*i\n",
    "                    size_j = min(k*(j+1), p) - k*j\n",
    "                    tmp[k*i: k*i + size_i, k*j: k*j + size_j] = g_kernels[ctr][:size_i, :size_j]\n",
    "                    img_kernels.append(tmp)\n",
    "                    ctr += 1\n",
    "                    pbar.update(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Greyscale"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1024, 1520) (1024, 50000)\n",
      "(50000, 1520)\n"
     ]
    }
   ],
   "source": [
    "# ridge regression to get weights (on greyscale images)\n",
    "\n",
    "num_sample = len(train.train_data)\n",
    "X = np.stack(img_kernels, -1)\n",
    "X = X.reshape(-1, X.shape[-1])\n",
    "\n",
    "y = train.train_data[:num_sample].mean(-1).transpose(1, 2, 0)/255.0\n",
    "y = y.reshape(-1, y.shape[-1])\n",
    "\n",
    "print(X.shape, y.shape)\n",
    "\n",
    "clf = Ridge(alpha=0.1)\n",
    "clf.fit(X, y)\n",
    "\n",
    "wts = clf.coef_\n",
    "print(wts.shape)\n",
    "np.save('cache/cifar_gabor_wts.npy', wts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(32, 32)\n",
      "rec 0.0 1.0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ori 0.02875816993464052 0.9934640522875817\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6723976766639843\n"
     ]
    }
   ],
   "source": [
    "# reconstruction visualization (grey scale)\n",
    "img_id = 1\n",
    "\n",
    "rec = wts.dot(X.T)[img_id].reshape(p, p)\n",
    "rec = (rec-rec.min())/(rec.max()-rec.min())\n",
    "\n",
    "print(rec.shape)\n",
    "print('rec', rec.min(), rec.max())\n",
    "plt.imshow(rec)\n",
    "plt.show()\n",
    "\n",
    "ori = train.train_data[img_id].mean(-1)/255.0\n",
    "print('ori', ori.min(), ori.max())\n",
    "plt.imshow(ori)\n",
    "plt.show()\n",
    "\n",
    "print(np.linalg.norm(ori - rec))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9747512940677767\n",
      "(50000, 600)\n",
      "(600, 1520)\n"
     ]
    }
   ],
   "source": [
    "# PCA (greyscale)\n",
    "all_wts = np.load('cache/cifar_gabor_wts.npy')\n",
    "from sklearn.decomposition import PCA\n",
    "num_pc = 600\n",
    "pca = PCA(n_components=num_pc)\n",
    "principalComponents = pca.fit_transform(all_wts)\n",
    "print(pca.explained_variance_ratio_.sum())\n",
    "print(principalComponents.shape)\n",
    "print(pca.components_.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 600/600 [00:46<00:00, 13.03it/s]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(1000000, 1520)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_noise = 1000000\n",
    "noise_wts = np.random.rand(num_noise, num_pc)\n",
    "\n",
    "with tqdm(total=num_pc, file=sys.stdout) as pbar:\n",
    "    for i in range(num_pc):\n",
    "        cur_max = principalComponents[:, i].max()\n",
    "        cur_min = principalComponents[:, i].min()\n",
    "        cur_wts = noise_wts[:, i]\n",
    "        cur_wts = (cur_wts - cur_wts.min())/(cur_wts.max() - cur_wts.min())\n",
    "        noise_wts[:, i] = cur_wts * (cur_max - cur_min) + cur_min\n",
    "    \n",
    "        pbar.update(1)\n",
    "\n",
    "noise_gabor_wts = noise_wts.dot(pca.components_)\n",
    "noise_gabor_wts.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1000000, 32, 32)\n"
     ]
    }
   ],
   "source": [
    "X = np.stack(img_kernels)\n",
    "X = X.reshape(X.shape[0], -1)\n",
    "noise = noise_gabor_wts.dot(X).reshape(num_noise, p, p)\n",
    "print(noise.shape)\n",
    "with tqdm(total=num_noise, file=sys.stdout) as pbar:\n",
    "    for i in range(num_noise):\n",
    "        noise[i] = (noise[i] - noise[i].min())/(noise[i].max() - noise[i].min())\n",
    "        pbar.update(1)\n",
    "np.save('cache/cifar_gabor_noise.npy', noise)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3-channel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1024, 1520) (50000, 32, 32, 3)\n",
      "(1024, 50000)\n",
      "(50000, 1520)\n",
      "(1024, 50000)\n",
      "(50000, 1520)\n",
      "(1024, 50000)\n",
      "(50000, 1520)\n"
     ]
    }
   ],
   "source": [
    "# ridge regression to get weights ==> separate regression for each channel\n",
    "all_wts = {}\n",
    "num_sample = len(train.train_data)\n",
    "X = np.stack(img_kernels, -1)\n",
    "X = X.reshape(-1, X.shape[-1])\n",
    "Y_ = train.train_data[:num_sample]/255.0\n",
    "print(X.shape, Y_.shape)\n",
    "\n",
    "for channel in range(3):\n",
    "    y = Y_[:, :, :, channel].transpose(1, 2, 0)\n",
    "    y = y.reshape(-1, y.shape[-1])\n",
    "    print(y.shape)\n",
    "    \n",
    "    clf = Ridge(alpha=0.1)\n",
    "    clf.fit(X, y)\n",
    "\n",
    "    wts = clf.coef_\n",
    "    print(wts.shape)\n",
    "    all_wts[channel] = wts\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "channel 0\n",
      "(32, 32)\n",
      "rec 0.0 1.0\n",
      "ori 0.0196078431372549 0.996078431372549\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "channel 1\n",
      "(32, 32)\n",
      "rec 0.0 1.0\n",
      "ori 0.023529411764705882 0.9921568627450981\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAC2CAYAAAB6fF5CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2daYwl13Xf731V9fa19+l1enbODKWRzOGihbIkRoy1EYYNS5aTIJEd5EOQIFAABwhiJHBkwE4QI0iAxEDsRAlg2HBiR4IVKzZoihZFSTRJSyRn4Ww9M+ye7un9vX5bvVevqvKBE1j3/s/09Ihw9Uj+/77YdXhf9a1bp+6Uzr/OOTqOY0UIISQZUvs9AUII+esEN11CCEkQbrqEEJIg3HQJISRBuOkSQkiCcNMlhJAE4aZLCPmB0Fr/htb6l/Z7Hj9saH6nSwghycE33R8QrbW733MgZL/QWjv7PYcfVrjp3gda6xta63+mtX5dKdXWWs9qrX9fa72utb6utf7H3zfW0Vr/c631Na11U2v9qtZ6Zh+nT8g90Vo/pLV+Xmtd11qf11p/+o79S1rr/6y1/iOtdVsp9eE7ti/u85R/6OCme//8rFLqE0qpIaXU/1ZKvaaUmlJKfVQp9U+01k/fGfeFO2M/rpQqK6U+r5TqJD5bQvaI1tpTSv2hUupPlFJjSql/pJT6ba318TtDPqeU+hWlVEkp9c19meSPANx075//EMfxolLqtFJqNI7jX47juB/H8YJS6r8opT57Z9wvKKX+RRzHl+K3eS2O4839mjQhe+BxpVRRKfWrd3z6OaXUV9XbLw9KKfWVOI5fjOM4iuPY37dZ/pDDuOT9s3jn/84ppSa11vXv+2+OUuqFO///jFLqWpITI+QdMqmUWozjOPo+20319v+SU+ovfZ+8A7jp3j///3OPRaXU9TiOj95l3KJS6rBS6lwisyLknbOslJrRWqe+b+OdVUpdVkodVH/p++QdwPDCD86fK6V27ghruTvC2Wmt9dk7//03lVL/Wmt9VL/Nu7TWw/s4X0LuxUtKqbZS6he11p7W+seVUp9SSv3uvs7qRwxuuj8gcRyH6m2HPKOUuq6U2lBvb7SVO0N+XSn1e+ptUWJHKfVbSqlc8jMlZG/EcdxXSn1aKfUT6m1//k9Kqb8Tx/Gb+zqxHzGYHEEIIQnCN11CCEkQbrqEEJIg3HQJISRBuOkSQkiCcNMlhJAE2TU54uSX/xV82tBeK8C4zKp5mvQOnqs9E4GteLABtlOjt43joTSWK/jGrUNga92sgK1wC/9NCTPmcfdQD8Y4G2mwnXz0Otg+M/GycXyzNwJjXqnPgm2lXQbbZr0ItmjZ/MKsdB2vJxJqPTl9/CKlcBvX3/FNm47wd51xD2z9ksY/auF28Fxa+FDmlf/6hXuf7K+ADz/3T2E2C5cnYFzxhunbOsRzSb5dnq+Dzfbt8Qw+KH945TT+gQV85rwmLlvKmluvhgseZtB29rHLYPv8+AvG8YXeFIz5H9cew/NH6KPBAJ00vFgyjjN14Xr6YBJ9O7eB6++1zMVIDfB37Qn0bX9YeA+1fpoK8FyeUFXl5S/Jvs03XUIISRBuuoQQkiDcdAkhJEF2jelGEYYknFIAtrBuxmza0xjzSE+1wSblwg1i89+BtR7GOpsrJbBlt/Dfj+44xnrUAbMi3cNTt2HIZ973MthOpZfBNukOjGM/dxPGPFXCejeOcOWbIcbt/sFzf9c4jhy8xliI6UYe3rfOGP7Wa5vjPCEOO8ji+ZUQqYqs8FhKiOu7vQcn+3GljnF1p4pBRH/EXODIxWvIzjTBFsa4SLZvr/ioQwR1XPBcB8/VG0bfTk2bgcX3H0Qd4qnaBbB9UPDbkjbnejK9DWM+9W707XaMW8q64Nu/sP154zi7gfHVCKUVpTSuRXdEiCMXTFtmB4Pxg6zgyIKL2pfkYbj+vnybb7qEEJIg3HQJISRBuOkSQkiCcNMlhJAE2VVIGwyE5II+2jI9MyAdTWH7JL+ZAZtCPUx1Bmb0vJruwpiZQ+tgc46gsPD3Zl4E25RnCgKTDoogow4GxS8FWAq3HplC2u1QSHCIcb1KKVyfE4JQURw1xccwW4UxqQGYlBZsUkJD5Jg2t4tigyN8oB4L65O1hDNJWJA+UN8vBoHwwX4PbVlLxAqOoT/6HVR8IuH8fs0Ui/IuLu7Bw6tgO/beNbC9v3wFbKcyptibFxxB8u1IUEbbsfk8LQ3Q/3ciFP0mXHyeTnqYBHVo3rzOtUvTMEYSbB3Br/plHBhat0TIQxHRgvae3jL/ptfBQVLiz93gmy4hhCQIN11CCEkQbrqEEJIgu8Z0Q6FQhRLiXpFnBjSiJn7o7NWwsMwHZhfA9sHKJePYjsEqpdTiEPZ3XB9ggPjFHWzUu9o1P4q3P1hXSqnzV7G4x5F5jLX9+8O/Zxz7doaAUmp5UAPbG22MX3WFL8Hnh7aM44tD+DF9cVEIfAn/lLoYilTplnXfhKSKII82vYcWT1JREOn8+8WgJ7h+IBVIstZoA7UJbxwX9wNHMeb68aHXjeOqgwlDzQhjp+0I/+bz9RNg+wP/x4xj166Ao5R69cI82E4dXwLbrx38A+M4FAKsl3qTYPv9LbSVXdQwCp4Zz/ZH0F+KS0KCiZDQIPp2wzxfKPhevyKd695ahKRNhJm9v7/yTZcQQhKEmy4hhCQIN11CCEkQbrqEEJIgu1cZa6EwpLMYnA+GzOP3nMTqRj8z/grY6mEebP9382HjeN3HhIO1plB5bAcFCGcZBYhBVSj9b3H4d/Gj8qufOQC28LAZiJc+DC8LiRCSMHK+jeLduXNzxnFK+LBdSnpIYSE45bXuLX51h4TOFEJOS3FJ+IJcqP5k0xOEi/0i7ggicU7w7Zpp+7FTKP7+9NirYJPu8f9cf8Q43vSx+tZKA6uftRuYhOCtovAalK35C69UR34bneP852bAlp03z1US2jh8pPAm2CTB7XxL8O3XLd/29ujbwuObaqHN1sc7Y3i/pS4guc17PyeRi/Pya3v3bb7pEkJIgnDTJYSQBOGmSwghCcJNlxBCEmRXIU1COyiixFYf8KUmVsP64sbHwdZeRSHB3THP5WAimxI6oSgp2cltCxktw2agPHsLxcJBDoPpbhMD8V9rmqLfEwXMQiprvIAzWWyP8jcLF8H20qzZvn3nAmbi+aN4P7Ib+G+ptI52xaYUapEqHuAaxo5gs/5kkBNEufv2tr9CMkKlKEGoVDlTVF1po9D1y298AmzdTVzM7Irpa1LrHyFBUmWEqnFOV8getHw7vYYLHuaEduUN9O3faZii31PF8zBGEteeKWILH8n22iEzc237/AiM6U7gXAuLgm8LbdltW4R6toqE6mSSj7q+ea5eWfJtCmmEEPJAwk2XEEIShJsuIYQkCDddQghJkN2ljTQGsqUstcy6eRr/2iiMCVEzUxWhf7ydJaJDodSalHHVwXG5TRzY2DTnL5Up3D4hlKbEjiPqN77948bx1w6egjGfmHwDbJ8soq0vKChnRs32Ky+EKKS5gtCV2cJryuwIwpFlcnqCQCb0IekXBdHAMkkl8lxB/Nkv3ByqU4MGZnnlF03fblyYEE6GpqLQ5shrmmsSp4TSgj6uW7opiF8ttHWXzIkMMOFTbR/Da9RCqcLfeuUDxvGfzWGZ1J+beglsZwWReFQQ3yeLZv+ceohCmtcU1qcDJpWtC75t7SODHJ7LLv+olFI9QVyzy0lKwp2HVTrvCt90CSEkQbjpEkJIgnDTJYSQBNk1pjs+gUHXzXMYr61dMmMqUmuMynWMu7htLPNjt3lJb2EvDt3BL/2jAlZi8icxqGW3jGnNCh+ouzjXyiWhzXPeXL6b0RiM+e+tx8HWOoxz/fkaxsfm8xvG8cLZZRhz8zLGGH2hglaUFqpq2ZcuhFxLS0LlLSE+1quZ/35LbeA9Ic67X4wNYU/utaVxsJVv3Nu30230l8w2LoCOzOt36+jHqRb6e5zHimXdaay0Z7cib80JbWWEKoFDr+G7V1ObusbVAfrZr24+DbafPvY9sP187dtge//wVfPvncVrXBB82+nilhV5gm9bSC3SCyu4FmFGqCBmV98TqppJGsbd4JsuIYQkCDddQghJEG66hBCSINx0CSEkQXYV0tau4AfLVezEo/KrZhKCV8eSPmEeP8peey9WYmrPmqJEegsD7PlVDFp3RzEA3j0uCBVp8+vq0Mcl8G5jcoQtwCmlVOmGOQ9/B8914tQq2K53MMmhWUEx4HrHXP+l707CGG8Ov8r2pjAppPfdGtgKS1aVMUH8SjfQmBaSWoKCeX8l4cLtCm1+9onlBfTtGnbiUcVF04fcBgpdwRAKtlsPod/WT1gV7tZRUM1uYBWz7rggXB7GZ6xWMzN4ogZmJOkNnFd1AZ+TbN18BrZO4jMxewSF3be66Gd+Fd/tGlbmxuLL2NIndxTbX7mTgrD7Mv5Ne4+QE6rQH3MbeP5+yVozwbelc90NvukSQkiCcNMlhJAE4aZLCCEJwk2XEEISZFchbfIFjBg3Z3Cf3j5qiigDIYOmMyVUSprFQHlsCVt+GgW4WMhACbM4Vy1klmUyZkS9t4xiRiwkuFSuYyTeroCmQxQbGn0UC39x+mtga8dCpo2VIjb8Ol5jo42ZSbnH1sDWOooCkOObc7Ozr5RSql/GeQV5oc2JJTTmBUHCbg+0nxz4BvpxewKva+Nd5ho5PfSX7ZN4XZUjW2DL9Exf9lNCGTAlZRMKlfaE1kJBaP42aqI/un28RqnKWH7ZFOr6RZzrTAEV1b89+iLYJC63zOzNie+gv2x0UFQ8+BSqnW8+jNfZC8znonpFEOAKuNZ+7d7ZbVLFvvsRifmmSwghCcJNlxBCEoSbLiGEJAg3XUIISZBdhbTCEoov6+/BLJcwY7chEVq1TGGfjb6UDXbdFCpSwTto8bIH3SbKCHMV2oQMcvjvU9ZqByR03FEHiyio+DEG/odTuNZpK0WsX7p3mxyllJoooED5/nEUIF4cOmQct3tYmrK4jAJBZxwv1NYBm1MoSKR3Hpx/40sLmMm3cQZFydASsSSRNX0Az9XYQeEpfdUU5TKS9iLcz0iqyin49mBgDkz1cL3tFk1KKdUbRn+0MxEj1LNVFO/t2QyEd7ualRl6ZQr3AmmtJZ45hu2vvlWdN46bXSwTWVxGca0zjn/UvsyW5NuNvfv2g/MUEELIXwO46RJCSIJw0yWEkAThpksIIQmyq5DWOYDZVGJZs6a5dwdFoTdTiPt7NEBbf9iM9Gshg8bp7S2AL50/ZYt8ktgmnL47IszfszPx8IcpQbnwIxQumgqD+pGlzEnnDwp4AVs+ijjNYBps1awp3gUf3YAx6+ewDKWLmqhK9a1jIcvJ7uG1nwRlQRkSfCFdN+9BfwjvZzgQssiEXl69muXbgqgl+Xbs4sSiQHhfspLlJJ1LsnWG790/T8pCrHroCI4S/F1QxDKWSDxAfV4FRTxXs4/Zrt9emwfbcM6cW/9p9O01wbcdwbcdy7c1at735dt80yWEkAThpksIIQnCTZcQQhJk15iu1GYjEn6R3rHGYMhSTITQXeFDZKt6kit84C2FYUMh/qOFMEslZ1ZP6tQwRjSI0SbF2uy4ZYg/U1UPA0BZoXfIToTVq+Zym8bxt4W1d6X4Uojr6jkYM77VqBjHhUwfxsw9ugS2qwv4oXl+wbzp6aYQ1xf8Yr/YmReq1wn+4lidbKTEmaAqxERDITbrmT7qtO4dS1UKE0+UUkoLVcZGSmaSxi0h6SHcwut2hPiwttwlFOQdOy6rlFKh8B4XCllDZdd8DqVECLeDaxhGeC43hc/+wqYZr63k8UGZP7sItss3hCSKi+aaZRpCXF9o53U3+KZLCCEJwk2XEEIShJsuIYQkCDddQghJkF2FNEkQsz8UVkopzxJNgoLQEkQQDaQKYt6ONU4QFsK8YCxiUL82jNW2DpbNql85D0WtxUwVbM3NEtjK181/s8QKToLyKCVHFFI9sMG5hoSWRKiPidWfCh7euOGC+SX4VgfVkr7w4f97jt8A27nipDmHFUzQKK7gPdovpIpwgi6kPMuFwqwgmOzgPXZ9/APejvVb4VRSsktcw3tXrWJls9nStnGccfGCFtOCb8+hb2srmUnQflVLUI4DQRHzBCctOaaQ1qsJvi08T90An52pUgN/q83zbbQw+6Lbx3O95+hNsJ0vHjCO8/8Hz1W4vXff5psuIYQkCDddQghJEG66hBCSINx0CSEkQXYX0tKCICYIN4EVVw6zGBSvzGGwe6zYAlujZ2ZmtXuYQeNvCiJNBTNOPj17DmyPFa4ZxyfTmzDmwhxWH/q3Q0+D7cZRK+ulgiWKakJJrrSwiI6gGKYs26Ak/K69t+wz+1xKodgwXcF7tNFB0WCpiWLM3JgpUF7/mJCR9ayQ1rRPSMKQJNyEVqJgv4KDqgfrYCtnURi113u9ie2B4i76eyGP5/rUHPr2T1VeNY5LGsWdN2axJdNvjj8JtvNvmeKRJNydLtzCuWoU/UJBMcxYNyAs4LqmfPxdJGjobkrYlCzmh7Bt1lYX95HFnRrYZkdMgXLxk4LY+Ud4L+8G33QJISRBuOkSQkiCcNMlhJAE4aZLCCEJsquQ1n1SyOgawYD0zc0h4/gjc1dhzJOVy2D7UA6zP7JWPcaXekJLDUEUGnVwrhLjVkrdtIsBcD/Ga8w4KEo8feKicfzZ4e/AmLJGEaQkqDhvBiM4V88UtnQkCAtpXIt6GwWrk7VV/K0lcLiCwBcIGWkZD9eiY2UKHTuwBmMuvm8SbPvFxuN4De8+/hbYLt4eN45PTeB1fW7iJbC9L4dlA0PrVi0MKjCmHqJw6QmC2EEPfXTOautTSaFvB2odbJuCoPSRY+bz+vfHnsdzSfUYBQKhNmVWm8+A1JJIStnrD4RzCc9mJW1mvGVdfOZuBWWwpV18BmzfnhlG4fTqB4W6rneBb7qEEJIg3HQJISRBuOkSQkiC7BrTPTGO8atfmfsy2M5Pmy0uzmSWYYzQ+Ue1hY/R7XyMj+Xwo+wgFtqVC62fcxo/NF8JzZjuygATNNZDjHGdqWLbmgNpM+a6HOCH1etSIoTwFX4phckdTauFjxT3ctu4sEEfb2tzgDGnvCuUjLNobAsxxkVc15GzZsx4p4fth5zcvT9iT4rHTl0D27+c+irYVqfNuOhxbwfGSDhCr6hMyrxX08L6SxW5JIIYK2S1op517MOYLTvbQyn16ak3wFaxepHfEDQHKcknJTyHkr9DWx8tVRnDNfSF5JGBUDJOiuHabG9jzDt9A5+TA0+Y+5lU6czJ7t23+aZLCCEJwk2XEEIShJsuIYQkCDddQghJkF2FtINFrMBVEir6fDxviigQJFdKVVL4wf6aQpGsljID/Z7GD7BtwUAppfIpobeQgH22EQfntRpiEP5defzYveSY4tfmAAPz0lq0hTYnKRfFhssdU6DUOaEliN3e6C70Qxw3sD5ul9r8xH2cf24dxy1fN4WWucMowtpVtvaTqSx+4D7q4PwmXdNH8xr9RRJxU8J9T1kf+0dCko8kfoXCOA88GRHnIIhaD2WxWphvCXVSgoNkk5CSO3p2yypvb74Rheh7gwivcxCZ69OPcL3iLtpyq3j+G9fNymwPHcX1WtWYaHE3+KZLCCEJwk2XEEIShJsuIYQkCDddQghJkF0j4bMZrGQkyVU3B2YQ/HaIglJVyLh6tnUGbL4VYM8KFbk2Ajy/JAKt93HcVs/MsGoHmOHS7qMt7+E85sum0Pjh6kUYIzHhoojTiVBcK7mmqJLO4RzCGH8XdPEupYUWPh2rFVIvFCo41VDY6UwKbmMtv1SVrVREH9gvjuaw6lpWEG23IvM6tmK8hq0I/eVaMAS2ZmiKcFtCRbGOILK2BNvOADPL1n3T3ze6grArPCfzZXzOjxZMIXQ+g8Jo1cFWVJK4JmWk2WSKKI6Ha+jHUQfPb4tmEoEwxi3h89SawfNrS3ALBeHufnybb7qEEJIg3HQJISRBuOkSQkiCcNMlhJAE2VVI+48vfhRtKbSl2mag2WvgXu5gnFxJ3T7yy6Yo53UwU6U5i+fv14SMFsGUbphCQuUaCkzlDQywb55E4eIv0mb7mZczD8OY9kEUlKoHsDzgx2bfBFs+ZZb+S6fxXM2KUFJO0C3qPcykKnrmTZHEttIYtndZyeHN7FltfXJCab2DVRRs9ot/8/VPgu3XhKxAt24+Irb/KKVEP3OEqpn52+b5JX2pM4a+7Y/gH5CencyWObehS+gv+R2hVdSRcbBdSD9kHAclvO6W5NtT6NtPzVwCW801RbhcBudVl3xbKG8qZZtlHfN8JQ8F4XfPYLnW6yUUQGNLfCx46P+FqrDB3QW+6RJCSIJw0yWEkAThpksIIQnCTZcQQhJkVyFt9Fv4n/sVDKinG2Zwu3IDszOCPJ6rNYW22lUz4O20McDeHcEyarGD8/KaYFKNU2bwv3MCg/VxV1gWITMuu2JmzFSuoDIyJCSptSewl9pXPooi3HunMNBvUxzHHm+9Hs7fTd07K0jKzit4qAjNV7Hk5+22eU+kHlUpSXHaJya/jrbmDGZA2W3ADjyHYmD7MPpjdxjFnfINS8yJcD38YcxSk16NCkvo7/WzppjTflgQ4HzBt9N4jzNWH7zqZfSfkdfQ1qtVwfbVnzoNtp888ppxLGWUFifQtyU/lmyR0DfNJiuonTPlBthcq5xtWihvez/wTZcQQhKEmy4hhCQIN11CCEmQXWO69Z/AdjpHxjfAttEx41DRv8MYV1Oo3iMRFMxxoYf/Luwcw5iKOyJUwxLiV1949Fnj+FAGq01J+EIlqayVvCC163mhcRxs31o6CLaxIlZsWumY69h9E+NlXhtjYQUhB+HKk2j7wNyCcdyPcL1GMxhXk0iXto3jqodx/W64t5ZKSbD1WfTtQyMYq15tlYzjwV/kYUzrgNAKJiW0lcmZ46TkiPopTDiQYpv1YfS1L77vy8bx0fRtGLMelsDmKXyeAqsdUFuogvdS8zDYnls6BraJPPrCN9fM30q+7XQFnWYV49RXn0K/fWz6pnEsVdAbSuMzV3Axzjuw4sOSNpG6j1ZUfNMlhJAE4aZLCCEJwk2XEEIShJsuIYQkyK7qVi6LH7hfvDoFNseqxFTtYeBcqjLmdVBJ0KEZkI7S+O9Cyhf63G9hFbDcMgocvx7/DdPQw3O5DfzdoIpig1M2g+5loWXH9nIF5zWCAXxH+MB7/VlzrQ8IVaNSPQzg5xYxK6S+jULFN0+ZCRlBCeeQGhY+nM+irWDZKlkUNsdzQrbKPpHxcC3PX54Gm7Nj+kItxuuSfDvdEj6gt8S1MINCkdNBf2ytY8JE/i18dH/pO8+YhiYKl05LeHbKgjBdtXy7hD67dQt9SvJtqXXT0rNzxvH4ZeH56qE/5t5CH9pu4TxePGkmZAwE39Y19ONsDm3Vgvlcl9J4w0eyKMzeDb7pEkJIgnDTJYSQBOGmSwghCcJNlxBCEmRXIW1nBbNXZv4Yx+WXzOC2s4UZNCPbGGCPPRSsdNcKZGsUGw5to7DQmUQhbesEmJR2rID6AOdQuoG/ywgtiNJNM0stdxsFg/Fzr4OtK1QUu/W3cB4Tb5rnK31vBScWCmlNLp6r9gqKokMvmmsdZzHrKCpjmx/p3+pB0fSV7SMjMKb+DGZ87RcNwYfmvoLjcot141j38B6PNFBck15ndGCJRYJvz38Z5yWJyatn8fyOZ/pC3BMqdy2iLbchiMm+6dv5t9B/Rs99D2z9D78L5/oPcR+ZfMEUntxNFKJ0R1hXgeE/w/1m+AXzOmMPtzrJ3+Mcio9ByawKuHEIs1O3fhIzde8G33QJISRBuOkSQkiCcNMlhJAE4aZLCCEJsnu9xTSKNHUhiBzkzDJzmR0UX0JBDJAyclzf/JvS7/pF/F1nHG0jT6LwNFHYMY5fuTYHY1IBBthLQguiQeHe5Sq1EKwvvLaM456YBVu/ZGab+YfHYIw/goF/qVPJIIvrk62bwk5hYQfG6PPX0JZD0dLzzSydkZ2DMObKk0Irmn1iZBSvtX5oVBhpikBSyUZpvaX2UdpqzzPICs+Eh79rT6Ft/Cls5TRsZUVdyE7AGPccll2tnK+DrTNvjtMxZj7qMpaXzH73JtiaV7EEZPqIeU2lDIq//vAw2MI0rkW/JAiGy6Zv568Lvn1LKOs6QKE0HZrnGt3EPePqR/bu23zTJYSQBOGmSwghCcJNlxBCEoSbLiGEJMiuSlAqg+XWWmcwS6T7iCl+ZYSSkBkPbVEkZDZZtrSLge1mG4UciaXVGtgWfTNTytvCJRg+j9kxzhUULvqPmgJB7OL16CKKDXGAazHxHVzr+lFzbn5NyKAR7mCEmoRYfrB62TSGBTy/OzmOP9wQmrAdnjEOUy38g9Vvooijfg5NSbCxiVlS+lEUS/0Pmv6XSaM/uo5QljCFwlMco+ADfy/AGxr00XZ9GTP+FrrmvZJ8e/JNzAzVb6Gwm5oy/TYUMrW8LD6HcR99e+p5FOS3bd8eFs4lvBJGQps9R0hcS2+b2ZaDqiD+xihM61XMLIunzHG6jz5QegHLS6rPokkpvukSQkiicNMlhJAE4aZLCCEJsmtMt1DEYElzEz8C9i6b8RK/gvGszhjG+GIfg4/OjjmlvhCLVELMMpzGuRZKQvx51Wyf4zWERItJTO6Ip46CzW51H3VwYt0T+IF67soa2LJrGE9Mj5lxNSnBwe3gWktxL4mgZA6MXeH8O5gMozIY+20eM9fV7QrVz3Cq+0Ymh7FHv4nX5b1h+kJ7VFhvybf7gm9bba2kOLsWli04iAMrFYzNNtfNuKLXFHx7CmObqXEsx2cnbrhtjGMGBzEm6i3cBlt2FX3bnba0DsE3XCFWGwk7lrRmduKSlNTi3W7gDx28b+15M/7vvEPf5psuIYQkCDddQghJEG66hBCSINx0CSEkQXYV0no9QZEJcJ+e/lMzmUALLWSkxIFQEIa8hlkNKNXBPvSNh7H6kH8aExoeGV8E25+snzaOM9dwCXplnKskTqWsqbXHUKRoHMcI+7EvCQkTwvqkLO0iW8d1dbt4/lcOV+EAAAUESURBVEEO11WqXrUzZ15Ufh3Pr7uCSDSCSSetSVuAQEGic+DBUdI8D4Uh30cBdfJ5sxVVqo+JEIMiio0pIUnAaaMv2zSP40f20aNYBexD41fB9ju3HjeO03X0qSCHNn9EaOGzZvrC5mlcm/pp9Jdj/w2fTQnP6rDj9NE3UgPBt4U9Q6pWWD9i3pPyTbzfkmimhMppmw+Ze4SLuqDqTOzdt/mmSwghCcJNlxBCEoSbLiGEJAg3XUIISZBdhTShQ4fIjU/ljWPHx8B2CnUFMZMkdsysIEnAGhRwYk4Xs4m+voBZZE7TDJ6Hgug09hJmqjhb2O6jN2+2d7n1IRTSpKyjsCAJLyjQeB1zgaSsGiWZpHUV/nltWR2CnD4Oqj+CGXXVb6FAmdswxTWvLYl+gnCxT/hdIdNOWKMbz5jCSqr3DnzbOr9UIS4QfFvXUdz5X/UzYHO65h8IhWJ8tT9vgs1ZWgebf3LaOG4cwecr1RUE5wxelOjbVlZXJLQ32qtvazy9ak+b65huou/1HsFKbcPfwGqC5ZvmH5V822vv3bf5pksIIQnCTZcQQhKEmy4hhCQIN11CCEmQXYW0nNB2RwldKWyb3xGEojRGu+NQKCVojRuutmDMpiAspIT2KFrqjjJllsTbyaPaUL2K5SsdoZ1Iv2IuX24N5yBl3fVruD6SGGCXR3TbOMhtolKXamJNvMEwrlmvZl5nYQUzpnJLKLxEW9tgq543W/EENcxg6lUeHCGtWBDKlgrtdJwRM5OpL7TOkZBcL5sz17eSE+bgo2DVFtpT2edSSil9yBR7m3m8552FPNjyGks0BiXzXuVvo2/7w3iV3Qmcq+S3jm+eL9fE63FaaEt1hbZfeXye2pOmPxaX8DnJXsYylNE2Zv/VXjWvKZjAVk9+jUIaIYQ8kHDTJYSQBOGmSwghCbJrgKrTwfhSJMRhcwUz9hIu42krl/fWQ6Y3ZJ5/fQhjg2ENKwaFafz3Y2oM4zOhFbdbWcfztyaFil8Bxmzsql+1SxiD8kfwurVQPSndEGJam2Y8W7ewRYsUgwp9jBW6ZWx/PjR03BwjtGTpTmP8KnjoYbDZldlas0I1qPSDU2Ws2RJaMgkxXW31ZIpXMWZZu7C3qm79ihlPXRkVqvGNCLFaQa8YL2OsPYzMe9Dp4j1vj+O8mlN4j4srZhx26DyW1mocwTV0fLwm0bdtLWIDdYK4gQlJkm+n8hinHpkwqwk6vtBuaAaTI9pPTIOtM2Y++z7+TIVZVhkjhJAHEm66hBCSINx0CSEkQbjpEkJIguwqpA16KB5JCQc93xSLYheDyhPProItunkLz581xbvWUydhzO3HUZzymviBdP17UqDfPJ5dwI+tC5dwrqqHYkA8sILzFRQk0huCkLayCbZwHSs9hSlr/WMUKZzhITz/Q4fB1h1HsaE5Zd5+/90416AsJHxIgpgl9sSOUA4qklIG9odQaDslEVgCauzhtY99XfDtG1iJTWcs3/7YaRhz+wkUr70Grtv6d1HwsX175obg2xfRz+ImtroCXxvGFk0j20LfmtUNMIUbgr9bx9oVqpNJvv0wVg7sjONz3pw279vaezHhKSgLQqaQ4xA71mwlN74PjZhvuoQQkiDcdAkhJEG46RJCSIJw0yWEkATR8V578hBCCHnH8E2XEEIShJsuIYQkCDddQghJEG66hBCSINx0CSEkQbjpEkJIgvw/iCxX14G0DgoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "channel 2\n",
      "(32, 32)\n",
      "rec 0.0 1.0\n",
      "ori 0.027450980392156862 0.996078431372549\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAC2CAYAAAB6fF5CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dWYwk55Hfv6/uqq6r7/uY6ekZDjkcDk8ND5FccSWKIiXZWHm9axt6WKwNGAsvjH2wAcMGDB+AAQOG4Qd7gbWBxWJtUAbWK8mkLkokRUoUSZEiOZzh9Bx9TXdP393VdVdlZaYfOMYq8h/dS0pQtqT9/16kjPkqKyszMjoZ/4wI6/u+IYQQEg6Roz4AQgj5mwSDLiGEhAiDLiGEhAiDLiGEhAiDLiGEhAiDLiGEhAiDLiHkZ8Ja+8fW2n911Mfxq4ble7qEEBIefNL9GbHWxo76GAg5Kqy10aM+hl9VGHQ/BtbaRWvtP7fWXjDG1Ky1E9bav7DWbllrF6y1f/hTa6PW2n9hrZ2z1lastW9ba8eP8PAJ+Wux1p621r5srS1Zay9Za79wy/6n1tr/Zq39hrW2Zoz5jVu2f3fEh/wrB4Pux+d3jTFPG2N6jDF/aYx5zxgzaox5whjzT621T95a90e31n7OGJM3xvyeMaYe+tES8hGx1saNMf/XGPMdY8yAMeafGGP+p7X21K0lf88Y8++NMTljzA+O5CB/DWDQ/fj8F9/3l40xZ4wx/b7v/xvf99u+788bY/7EGPM7t9b9vjHmX/q+f8X/kPd83985qoMm5CNw3hiTNcb8h1s+/aIx5jnz4cODMcZ8zff9H/q+7/m+3zyyo/wVh3nJj8/yrf+dNMaMWGtLP/VvUWPMq7f+/7gxZi7MAyPk52TEGLPs+773U7Yl8+F/yRnzV75Pfg4YdD8+//91j2VjzILv+zMHrFs2xkwbYy6GclSE/PzcNMaMW2sjPxV4J4wxV40xU+avfJ/8HDC98LPzpjGmfEtYS98Szs5Ya++/9e//3Rjzb621M/ZDzlpre4/weAn563jDGFMzxvwza23cWvu4Mebzxphnj/Sofs1g0P0Z8X3fNR865DljzIIxZtt8GGgLt5b8J2PM/zYfihJlY8z/MMakwz9SQj4avu+3jTFfMMY8ZT705/9qjPmy7/uzR3pgv2awOIIQQkKET7qEEBIiDLqEEBIiDLqEEBIiDLqEEBIiDLqEEBIihxZH/Oc/exZebdhbX4J1pTVpq+5jheDI5EmwTUyfAlvvyIQ8wCS+ZbWy8C7Y1uffA9va8grYsumi2J6aPg5rtraxWvf8w58E2/TMabHdrO7Dms2NG2CrlPfAtrO7Bbabq7IAaGHuCqyJRC3Y2i20baxXwdZsy+vkem1Y099fAFs2lwObb2VbiUa9hWu8ONi+/rWX8GBD4E++/l3w7ZXZt2Hd1sJlse26eMsMTtwGtonp02DrHpK+nUrjvq5eeg1sS9cvgM2p4PWMBo4t343XLpbKgO2Bhx8F24mT8jc193dhzaWL74DNU3yo7WA8+ODS+2K7XNqGNa02+pDTxuZmuzvY0qRal9/ZcXFf/f09YOvuyYLN9StyXw4sMc0GvgX21f/zbdW3+aRLCCEhwqBLCCEhwqBLCCEhcmhOt+NhSqI7j3kiZy8ptnOFIVgzOI65U1ephvNdmTDxG5iv2V1dBFtpB/Owx0ZGwTYyfExsD03imqefeQZsxUI32DJdMv/jdnDNyHA/2CIWf3erhTmnZ5/9X2LbRhdhjYl4YIrG8bL2DSTAVqvXAttlWJNKYw7QRlywJeLSByrlGqxpt5Rk2BFR3sMcZW8Rc3x+/6DcjuVhzfCE4tse/taIJ33Zq3dgTXMP/dhvYE50tG8AbBPjJ8T2+IlJWDMyOga2gYFBsMUD17NTRD8YH8P7vNPBnG6z2QBbaU/mpLe38XrEEimwGWVgRXdvEmypLvmd+4qOkkzhfeL5eE3iMbn/8n4J1rRbH72yl0+6hBASIgy6hBASIgy6hBASIgy6hBASIocKaVZ5C7jdUpL/AdvE2DCsKZdRpOnKd4HNcaTYkExh4nxmBl9Gv/3UNNjO3XEP2NIZKQTaDJ6CTAoT8839CtjcgDDUaChrfBS6YnEUtYoFFNwGB+Tw4KvJa7Cm46LQ2HbxGuXzWNAQjUlBrF7XXlDH3xSJ4Pkpl6VwofmJ46DtyHA030ZbvS6FoamTKLxWa4poqBQE9PRJ34vF8ZlnZgaLiB46fx/YRgdRECsEfMiJoeCp+XZM0YBsR16rRg2LMVrKOcwowmt3EUW/6eO3i+3Ll7Hwx1jcf6uF/l7Io4AdvMX2yxuwxjco+nkenoy9PXl91cKfj9Ehl0+6hBASIgy6hBASIgy6hBASIofndNuYP3GamAdJxuVLzI0K5m8LPfgC9vGZY2DrHpLrMhnMEbXrmF+qNfAF7Mvr2ESmUpO5nbaPn5ubvQS2u0+cANsTgSY4HQ9zaDUlF7a8hzlA18Hcb3//lNju68N84sKSMr5KeYG8WsfcbKUqXxjXcoyZDOYAPxwPFzTKQhrHwTXxODa8OSo6ygv7toPHnEzIhkv725j37h3C/OrEHegvA+MjYjuu5Pa1bipOB/PDs2tYRFGfl/7uRPBevfI+Noa6//TtYHv0gfvFtjbWq1zGBk83lm6CLRHHIodEQhaZ9PWjb99YRg0joTTsqTbwfiqX5XWKxbHQK5/HfTWUYqygRNLp4L2aTCrX8gD4pEsIISHCoEsIISHCoEsIISHCoEsIISFyqJBWrWCCOqu8/BztleLXPXedgzWTJ7CgoaR0hp+7sSrXKC+eN5QE/k4JhYXlVbR1d8tj7fi4/+e+8izYIr/9d8H2+EOPi+10Cos9tEII19W636P4+JN35ISMSAz31ZXDrleOkuivV7EzkgkUbvT0Yge5RAL/Lq+sroEtavG3BykU8FiPilZd820UfPI9suBA8+3x4zNgq3SwEOTKvJwEUq4rEw9KeJ00315bx65Z+WCBTQTvr+e+8hdgi/82XuPHHnxEromjwDc0NAI246PQWNpDEfcn78hpGLE4Craab3dcFPTaim9HAz9JmxLhuig07uzi8UeMjHmxGIbNYhHvnYPgky4hhIQIgy4hhIQIgy4hhIQIgy4hhITIoUKaZ/GfnSiOKN4KjPWZL2EV1oUfvgm29ZsoEOyX5WfbLazGiSndh3yD1UT1GibKRwNaw1JAuDPGmGJKGW1TReFlYUWOeB8YwGR9Qhmdk+3Gjl8DI1ixt7B8XWx/8P4irOkf6gPbxqZS8dbCc+215TmzHaza8aMoyiWiSmVZoAounUZhLRr96FU7v2iSSfwNThSvSyMt/X2hjJVs7/4AfXt3B++B1ZuyGjIexfMdV8YvtdQROGgb7pe+trm+BGvySuVUpYQi7tWFBbnvYfSzuOLbw+M4wmdEsd1Yl6LilfeXYc2AMupq8QYKXUap5vTa0uYqHddSCRTvkjH0i0ZTfjafR4EvFsN9HQSfdAkhJEQYdAkhJEQYdAkhJEQYdAkhJEQOFdKSySLYKhWM01sbUjSYu/YS7qsLBbiqksAPttfzPKyqabZRKKoo7d12leqSzZ15+X0eVoedPnkGbLUSVgB977vfEtvHjh+HNdPTaBtVhAXXQ3FweEQKCdfexUq8Sh0v4e4untd6GauC/MB3tpUKwUgEz08ui9fSM7Kaq9lUrlsTRdGjIpNB4XKzhFVk15elwPPBpYuwJqIISsFRTsYY0whUeEYV0azRwmtXUlqlVpSWoYsrl8V2VxqFwVPTp8BmFKHuh6++LLYnj2Eb1pOncLRQr1LVmEzh+SnkpfAU6aBv11oYa7RROY2SMibLlb6WSqNAVlXuibxSBRccGdZua2OdsLrwIPikSwghIcKgSwghIcKgSwghIXJoTndkGEdovHXhKtjmZ+X45EwC8y43F66DrVlXXtgPjCvZU0afl5R8YUIZLd07iKOfTeAl5tEp7Bo1EsNc2+rs22DLpuXL7R1l9Pm+kjdqO3j8MydxvEtvQXY3evxBHCn/3uVFsDXrygh5pS7B9WRe0LfK7169AbZUOg22QrfM5bnKudBGoRwVxR582f/6Mvr22qIsEsjE8drt1zDfXy1vgs168vyWKpiXLTWUYiClkKNP8e10Tl6D0am7YM14CnP0C+/9CGxRK/O8jovFBVvbeP/eeedpsJ2YQV1jPFD4kD1/N6y5MIu+12piJ7hWXCmOMDI36/noj+vrymihJN47he7guVY6Hyrjwg6CT7qEEBIiDLqEEBIiDLqEEBIiDLqEEBIihwpps7NvgO3KHApiW9tSbHDK+DJ3Ko0J6nN34Qif6akpsb2+gy9uz6/hi9Q9AyiMzNx+B9higc5Cew1MwjtrV8AWiaN4NLcoX5wv7KMIcu7cfWArl1FA6TgoVDQCItzsWz+GNTPHbgfb0Dieix//+FWw3ViRQkJHGfNTraD4tV9GWzojhQvfx7Eq9V8iIW1uDjuDzSq+fXNtTmy7ygirXAE7qp2amQLbmdOy6GZtC8WXpS3cf/8QFnJMTmOxQq5XCj4be7gvP3CvGmPMjSUUrLYCI4JOo5uZT59E0axWxd/koWsbvy3v60uvo5g3cwpF7sFRLNh6/c1XwLa+IWOQ46CQ1mxgbNlTRguls/I7PR/vk5oy/ukg+KRLCCEhwqBLCCEhwqBLCCEhwqBLCCEhcqiQ9sNXXgBbfhw7C01Oz4jt/jQmuyeUzlpTU2hzGrJiJpbALLwTxzn3NoVCVzzWDbZoSlZ5VVavwZr+GJZvLSyugK0a6M406WK1T0MZq/Lw3efB5nSw0inqyUqkxXc/gDVuFTsenXj4YbCdvG0YbNWmrKRaWkBBJZPFrkvZDApH8YT87Vs7WJHVbn/0qp1fNK8rvh0bxA5c06fvFNvpNooop2+fAdupk2Ngc5vyHPkRPB81g53xYnGswopG8R5zOlIkrlV2YU2hjYJSx0XR88am9I1UFsdaFfJ4fx2fngKbrzzbNUpSVJ194138nCJyn3nys2C78yxWvDXekkLa3PVFWJPJYLe8QrEXbCYwCqxcxgrEVotdxggh5JcSBl1CCAkRBl1CCAkRBl1CCAmRQ4W00hqKIVP3fA5sqZSshClaTMyPTPSArdbEyrWVOVkJ0+hgWzvXV1o7+vj3o6OsixgpkiUSKFJ4ZRTvMilct7onK9C8CK7pLqLY0FbGo6SS+NlMVAojfTkUT5IWhZFsDgW9e8ex+q+3V7bXe/4b34U1a6soxvQPYMtPG5OC3ujoCKwp72Ml4VGxuYyC1d13PQ22ZFKeox48tWZ4BMXGXWWEzPJ1eS7bHlZpRiz6XlRpNardA6Yjb2e3hUKd7+K+sgWsYNypygqrSALFU0+pOjRGseFXmmxKnrOpkXFYk4riviIGqznvPIPVecWivFe+3vgOrFlfQ0FsdAD91rXyPo8r45nKShXuQfBJlxBCQoRBlxBCQoRBlxBCQoRBlxBCQuRQIa1nAJPbCU9p/1fekGuU2fH1jlJZ5qAqke2Tc54SDn5frIHiUdtiZVbTwSqRhJXiRcRgO0Y3gqelqxcT7L1x+TsjaRQL24ow4rgosiQdCzbPl5+NZlBUTHVh9VyrjhV7jRaKBr1dsjrvmc9+Bta89S62AizX8Jw5bSlMuUqbyGIez89RkcniscQVDahUkmJysgfFzLryW5t4iky6Oyf35eE1N030F1+5SzXfTqXlwohFwdZTfDur+HbCl6JfNI2CsJ/A+9ezeFzWRREuEpXHEVf8OJ1FW6eF987O6gbYerukAPrFzz0Ja956bxFsVaXdY7O1JbZbyjy0oiJyHwSfdAkhJEQYdAkhJEQYdAkhJEQOzelmisF578YkEphX3NgPvBisdOlKNjG+t+uYREtGZZHAflnpKBZR9q/khNoWjzWRlfml3m78nPHxc60W5pG9jszJpZL4snsiifuPKC/YOw6+7J4O5In8qNLFrIEvi/su5rfTUcw77u7I/FsmVYA1jz10F9hmr2Ge90rgxf+aMtYmEcMCkKNieAJfqLcR9NFmoIBno4y3TKKIxQVOB6+7jUu/alTx2jlKkU8shn7ViaItk5caw0Av3jv+LuYj28ooG+vJ40insYuf5seej/tyXcxTR+KBjmtR/N3VGuZvraIpJZXrVt6Sed50BnP4jz54FmxX5pbAdvGDdXlcZcW3lU5wB8EnXUIICREGXUIICREGXUIICREGXUIICZFDhbREDP+5rghKjYoUGzJZfBlaGx3iKqNDdsuyE1VUmTGfzaBI0ZNDEag4gEUa/d2yIKCjjPRppBXRaRtfIG/Nr4ntmNL5yXXxZWul0ZOJK+faDYwJ6e3DUSJeB8UYpcmbSSZRCOnLywPZq6Bw4XdQNLjnDHYZK+aksLOtdKhb39gC21HhW1SBHEVQqgfOSVIRlCpl9O12E32hXpb7iiu1EbkuFMj6u1EEyvfgPdZflMfmxvCeaCSVe25S8W1X+rZRijFcpVuepxR8uBF0eBsQ0oo9eB96rvKdyjUqFPCaJAI3QamiiIoO3jvnTuMIsaBvP/ccdizb2sCudQfBJ11CCAkRBl1CCAkRBl1CCAkRBl1CCAmRwyvSlC5CsQ5WtPR3yeR5XxorUO46jl14CkpnHifQwcdtopCzsY2CjNL8yZw9icJTd7+ssisUj8OaagmT7kO9KGbcdkp27soVMaGf0SrSFBHHU9QvL9AlqiufhTWtKooZyQhW1EWV72wH9l/sycGaShXFtfo+dnUaH5JVWU9/9glY8/y3XwTbkaGIQDEPbYVAodF4AYWi2xTfzqbQF6JWPuPUlGrLZh1HGqW7sMLw1Az64/jkmNiOxCdhjebb48PDuP8FKYTme7DiqqcbheqYUo3qKcKuH3DHVKDjnTHGdJoomkWUfcW1SkIjhczePrx3qnUU6mqldbCN9suOZX/r89iN76vP46irg+CTLiGEhAiDLiGEhAiDLiGEhAiDLiGEhMihQtpTn3oEbPlBHOGzvSmT7idmcM3YCFZ6DA9iJUwq0L5wextFG99ggj2Zwkoe32DWPZ2WlTzJLhSPYi5WE8VjKLLcc1aKcFPTU7AmqsyAsXFM6tf3URyMpOWxOS7+7mgChYum0jKwOICiYiPQvi+iVA5pbSK11p3GkQLQxDhWGD3y6AP4uSPisQfvBdvx27GN5c3VVbE9OoIC1smZabAN9WNb1KgvRbiKUiXVUiq/bATFu2wXVqRls1LsiiZQzIsrYmGjhr53zxkpwk2dnII1joe+4SvPcR0P/daPyt8UjWMocpqKuKxUpEVi+J02FThnypqWg8cfi6II7bbldepXRLlHPnk/2A6CT7qEEBIiDLqEEBIiDLqEEBIih+Z0J0cHwXbuAcxdlEqyy1JeqVSIKWN+nI6Snwm86Nw3gh2tHCVHZH3M/8SUzl3Nuiy+aCsvSDebaBsYwFxeNiNzZtqL7Z4y0yQSwbyaVfKkHUcWX0SU/G1rD/OCThv331HyV8EaipjB/QdH+hhjzMriFbCdf+icPK4mnotM6pfnb/y9Z28D2x13Y063cUbma7sKWBCgNI0zvsU8bCSQL+zpQp1DmdajPhl5ytiaTjDfqVzzVguLm6ZPTIAtnZA540YNr6evjHM3Fm2+VvgTuF9d5Xx5SlVFWxl/7nrKiPeY3F9EOYsVxbeXFpbB9vAjd4vtuoMFQ5lgDvkQfnnuAkII+RsAgy4hhIQIgy4hhIQIgy4hhITIoUJaroDjPtLKS8y5MSkIOMqInUQCixcaSlI8kZR/B5TmWMY4uP+Y9oK08lE3kNRPpZQuYA38jT09/bguLj/rtLG7mnHxuNptLL5IprDLUmtfCmk2jYKBQR3NRJWiEL+DtmSgOCKhqDiFFl6A1U28bqvX5XiXyZNYIJONKi2ijoi0VlygFNh0ZQK+EFM6xCk/y2pCWsDmKfeJp/h2UHQyxhirdNbqBCQ9pabC+BY/ly2iSNwJzJRyPeVGVEbz+AbvgYh2IK60uTEU2rXiJq07nPXwO5OB440r92FXE3+Tv4G+vTUvC7TGTo3Bmu0IFiQdBJ90CSEkRBh0CSEkRBh0CSEkRBh0CSEkRA4V0tJZrCzzlCqU/aocqVNvYFI5oVRT3byJHcS8QLVZRKnoajYxme4rYoMm1DWb0ua0cU29iUJXNImJ/ny3HFEzNoKVPTFFUEmncF8dF48jEpcVb7k0nouGIlxolXGxKHZTa3Xk/toOXrfeXuxUNTqGHbSCvygRw+uRz2F3pqMiV0DxyFc6TNVb0tf8FvpGq4X+WKvimKm2I9e1Wlgx1umgkOYolWWOg99ZD1RX1mtYOdVRKtlyPSiY5wry3i/m+mBNSrmnXaWLmbFK5WmgU2Auh+OAdjZxX00ltngedrSzgepKT+kcmM+hcDo5gVW4jbq8lr5SEVvIKSL3AfBJlxBCQoRBlxBCQoRBlxBCQoRBlxBCQuRQIe1b334BbC37A7DVqjtiu1zC8R+u0m4wGsWvX12R41Fqihg2OjEJtkIPJtOD41GMMaa+J0WmuXlsU7i9uwu26VMzYIsnZSI+mcC2f9PTeKyjY9jST2uvV4xL0SOdVCrlCihOaRVSdUV8jAeEkEiw16MxpjisjKfJoABRD1xfZVemtwfPz1Hx1a9/E2xu/FWw7e1Jsbe6vw1rIsr51sS1jQ25L1e5UD3KmJ/uPhy1lFTundquLE+8eu0yrCkro5zGj6GPRuPyAuZzeAzHjqHPjo2jbx87ju1Ze5Ly3swp4rKntNE0URST1TFWgQrVaBJjweCUIg7m0bcdX4rVUWVaVc/H8G0+6RJCSIgw6BJCSIgw6BJCSIgw6BJCSIgcKqR975U3wBYvYFK8VpZt/daXUJzKZbBiY3RkBGwL80ty300U0rJ9KO60Y5go75SxKuj8WTnv6Owdt8Oach0refwo/n26cXNFbF+7OgdrZmffBtvQEIoNn/7Mp8F215Q81zGo+zJmbBjFjN0mVjBFI1hZ5lsp1NWCM7aMMX4CXSTdg20oO4FTpug8eq/NI+KFl14DW3HsFNh8VwpP77z2EqyZHMNWf329KDytrqyL7Y7SkjCjzBdsR7CKbGMFZ3k98cCDYvvc2TtgTb3VBFtEade6cEPeh1evoW+/f/EdsBUVYfe3vvS3wfbwHSfFttZWdGwY24O2FSHNKq0jg+0wHa3lZExpCVnEyrh0oI2mF1VEabAcDJ90CSEkRBh0CSEkRBh0CSEkRA7N6T71+S+BLTd6GmyNisxV/fF//NewZnz0ONi0cRyZLlnkEElgtuTYKdxXzwDm0EwDc5tf+M3PyO/LYX7SNZhDaykvYNtAfqnWwhfP19c2wbY4fxNs+TwWdzQr8jvnL12DNb7SSWp5Zw9sd3/qHrCdOCFzkR1Xyfel8U1w7bpli/Kl8mgS13Q6yjijI+Lv/O6XwZYcwAKYesC3r73/HqwZHsLcY0QZp5NOyRfo2x7qFSfP4DF0D2PBRL0P/eWZp35TbGdymMevKTldZeqO6QRGCTU7+LnNTSwiWlpA385ksHBgfUUWVC0qvh1p4nfOr+P99MBn7gPb5JTUi7QCiogyqsvE0UdtsKuYxTUJizHjIPikSwghIcKgSwghIcKgSwghIcKgSwghIXKokNaVQRHr6uxFsO3uyuR5u40CVruN4zLqdRQSvIDYkojjy9BuEwWr3R1MbpdW18H2ncBL2HVl/MrOPgoEhSK+tJ7NS1tXHhPzK6trYBvsw5fpE1F8Kfvlb/ylPK4rWGihdW+7to5jkOb3dsB26g5ZDFAoYAFLTy8KNqk0dmLKpaUrJdLoWtksjgw6KpIJfN7QfLu8L31IGwvlKNegqozrsYHRTSllBJSjFObsb+F3btzA4ohvflt2TturKPuq4iinXB6FrkK3LEDqUrpvraygaDbQh8VTqTwKga8+L49199oFWOMqceS64tsripg8c1oKkoU8CuaFbhxTlM7gfVjoktcpnsKYlFE67x0En3QJISREGHQJISREGHQJISREGHQJISREDhXSNpYXwfbyt74HtqU12W2rXUEhqlkugS2itKJy2lJc8y2KCN/86nfA1jeAnbvO3I4dxOpRKRZVHawkuTK/CrZK6QOwVWtShNvcWoE18wv4ufP3nwfb7335H4Ht8mX52ZtXUJRrKp2qWpjnN6vvowDxyttSCCkkla5XXSgOOga/IBsQEiaVETBf/NLfBxvWyYVDZQdF1he/9jzYltflNY04KP5euFDGL7BK17tOsLIJfe+F514EWyKOIs25u/HMtRNSqCy36rBm/gZWdO3s4FifdlMe2831RVizsIifu+/ue8H2h3/wR2B78/Ufie3OPgq9ZUXkbijVkPNvoaj46tvyXumKoSgXT6AfR5OKSBwQ0sYmp2DNF3/rd8CGZ+JD+KRLCCEhwqBLCCEhwqBLCCEhwqBLCCEhcqiQlklha7iZY9NgS6VlFUe1gq0Fk8pIkJiStG41ZfI8nlDGZ2SxgqZfEdIe/tTnwNabk+NEFq+g0OW1UVBaWkFxLZ6RwkVbEZj8OB7/e1dwnNHla7Nga+f7xLYzfhes6evGlpZaW8Gk0qKxsieFtO0VbK83t3AD95/A69Z0pMCxVcU1n/iNj97+7hfN8OAw2GamjoHND7T5jCmjc6KKaBZRxjv5njxHiRRWABrFX0ZGsMrr8SefBFsuI6uuCimsJvzgIramvHodR/EMjU6J7aYyTieaxiqvi1fRjz+4ehVsmSnZIvbmTTzW7iLaBhLox5ksxqnddTluaGf1OqzZ2kZxuekqFYeB3pdrJYxlDz3x0WdR8UmXEEJChEGXEEJChEGXEEJChEGXEEJC5PDWjklMUN93L1ZT3Rdok5dMoqCUVGadeR6KEm5gllEyjsdQr2FVkGtwBlJpbRFt87IN3942Vs9dmUWha25lHmwzd8iaE0epsIulUSzR5k19/3Vs2zg5fVZsDxcnYE0mhuc1HUOxoaW0w1yck6JHKp2FNd29/WDb3Me2hd3DUmDdb6Ag8dIrb4HtH/8BVuKFwe4WXvfzn3gIbA899pjY1nw7pohmmpjpBeaORRXh1VFE3EYbK8t2VsmJrlQAAAdrSURBVBbAttuUVVe7im/PK6LZzU2szssOyBljJokCn02gkNbuYBXZC9//Adgmp+8U2+M9SkvICN5PGaU6r9XE1o7z5UtiO5tD8d31MWas7+F90tc3JbbrShXri99/E2y//w9xDp8xfNIlhJBQYdAlhJAQYdAlhJAQOTSnm81hPrK2hR2VZmfly8/FIn5ucBBHdrSbmJstlWV+xm9i/jMdwReRhyawOGIsj3moxTXZkahUxhzUwBDuq28Yj7/qydPXaGD++djUDNhWbmA+bmsHu7D1922L7bSSH25VcFRMXMmDG4N5qHSXzOF2KfnhSg3Hu0TjmHecOn5cbDeamC/TRt0cFV3KeJWdMvraOxdkrn1gAF/YHxzoA5vjYFervb3ANVZ8O+bh50aPjYBtvBtHH61elZ21alXFtwfRtzO9OIoqmpI50HoDj3V4GDWG9ZvYaW97B31oeETqAlbxjWoLz4WJ4XVzlE57ycC9klQKWNo7W7j/CN4Dg4FCkXYL77mP49p80iWEkBBh0CWEkBBh0CWEkBBh0CWEkBA5VEhzWijudBx8efill78htiOKGJBUXiBPKB3EqlUppHlNTFqfOHkCbP/gHI6CmRgbBFttQ3YWevM6dg/L5rFIIBLDU5V25MvtY4NjsGbmNuzK9pU//1OwJSMofllXnrNKUIgxxjhNFEs6abTZOAoEYxNypM7+5hKsaSpiRq6IwsvwsOzapWidZmwERZyjIhlHYbHVxPP72mtyPJXvoKCUz+C1cxwUEpsNKRzHlGeeyalxsJ05j2OnpidQXCstSxFrfW8b1iTSKERN9+J12dqS9/mdp87AmjvuPAW2Z//8z8AWM8rIp5o8j+02nle/gwKZSeF51UbsTB2Twu7mMhY8mQgWp6S7cF+nT58U2806xsBxRWg/CD7pEkJIiDDoEkJIiDDoEkJIiDDoEkJIiBwqpBlf6QJmUCF56ukvim2niVVr0bZSoeQpZRwBwSqqVKCks1iZtd1Awac2i5Vf2xUpZtg0iiDv/+QNsJX3UWQZH5Ui2flHH4U1TgtFrS5lzImnCAm1euBYlc5VrkUxoOEqFTpKl7fRSTmexmtjt6bTZ+4E21vvvAu20o4c/dOoYScyv47n8KioN7Bzl1HO75NPPSO2vTb+rqgimnku3jt+VF6rqNINLtWFvrFewsrNSglH4Ow25HHYFArVV97Fbnk7P8LKrOPHpEh2/wmsrGwrVWppZZSTr1TnBSvcIkqHPk8RYxtKZ8KYi+d/ckwKac3qDqy5PY9x5M233wHbzSUpwum+jSPKDoJPuoQQEiIMuoQQEiIMuoQQEiIMuoQQEiKHCmnJFIov3djZznR1y6R1RUk0FxIoWEUwJ268wFiQXDeO2aju4niRiMVj1drAdY9J8ehEuhfWXJlDkaJY7AFbV2AEyPoGtrVLK+NdckrFm3FRbGg2pPDUUISLRg3Fr2YdbV0FPP58j2wPeGN9E9aUNm7g/ivYqm/pihyPUiigo7iK7ajoyqKIVVB03Vy/rEZqKcJoSnl2SVjcvx8QbZMZXOMpY5UqFUWYzuB9MTAtKwWnM1iRdm0Bx/UYRYyNB1pfrq6hH/T24fXUbO0GxoNWS/pQrYa+3VIqv5wWCqCxFIqPgyNyzNTS2gas2biB56JZRd+euySF415lhJXfjffXQfBJlxBCQoRBlxBCQoRBlxBCQuTQnG6zhp15XBffWM50ydzg5iq+KHxxFnNCWvehTI/MsXb3KbkrJc+bSmJOt3doGGzBeozljZuwZmhIyUc62O1spyRzbdeuXcZj6MGccaejvCxexcKB/X05WijYpcoYYxpVzPe5bVyX2MVzli1IW0vJGQ8O4Dk8OY2d0wp5mU+cmDwOa5JxzL0dFfUK5u2Nh88gcSvz7xsbmPO79sEi2FIx1DASBXmO+pTRPyN9BbDFlKKN3gL6VbAeo9nA+3BgAP1gdATzkWvrUje5ehV9e6p9DGxazruiaAD1usyxlvfRj7Wcrubb0SQWOVy6KEcoaSN2BgawC+HoWeymNtAv1/X1Y1e2lHIMB8EnXUIICREGXUIICREGXUIICREGXUIICZFDhTRXeRE5qsRpvyltuRh2uXr91RfAtrmJnX9sXL6U/cAn7oc1n3zoAbAtlzER/97br4Ot1pRi0eWFRVgzt4DdyRxFSPNcqcolsihu7CkjdvZ38EXt6v4u2IICiu/jeS3kUJwaDozhMcaYnj4c7zI8Km1D/dhRrCeP+88ksXtVxMpjjURR2PS1tlFHhNbVLaL4diwwkimvjPl5+/Xvg219AwsTwLcfuBfWPPLgfWDb30ch6oLSCS/o21dvLMOa+cVFsDXqeJ/7vrxWqTwWBJTLWIRTUUYE1coo6AU9IRZF39B8e+QYinfdvSj2DgRGQ43crfk2il+JKBaKRIM2pZjE+B/9+ZVPuoQQEiIMuoQQEiIMuoQQEiIMuoQQEiLW95XWSoQQQn4h8EmXEEJChEGXEEJChEGXEEJChEGXEEJChEGXEEJChEGXEEJC5P8BX5RwJqdRppoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.1548832341506012\n"
     ]
    }
   ],
   "source": [
    "# reconstruction visualization \n",
    "img_id = 1\n",
    "rec_ = []\n",
    "for channel in range(3):\n",
    "    print('channel', channel)\n",
    "    wts = all_wts[channel]\n",
    "    rec = wts.dot(X.T)[img_id].reshape(p, p)\n",
    "    rec = (rec-rec.min())/(rec.max()-rec.min())\n",
    "\n",
    "    print(rec.shape)\n",
    "    print('rec', rec.min(), rec.max())\n",
    "    plt.subplot(1, 2, 1)\n",
    "    plt.axis('off')\n",
    "    plt.title('rec')\n",
    "    plt.imshow(rec)\n",
    "\n",
    "    ori = Y_[img_id, :, :, channel]\n",
    "    print('ori', ori.min(), ori.max())\n",
    "    plt.subplot(1, 2, 2)\n",
    "    plt.axis('off')\n",
    "    plt.title('ori')\n",
    "    plt.imshow(ori)\n",
    "    plt.show()\n",
    "    \n",
    "    rec_.append(rec)\n",
    "\n",
    "rec_ = np.stack(rec_, -1)\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.axis('off')\n",
    "plt.title('rec')\n",
    "plt.imshow(rec_)\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.axis('off')\n",
    "plt.title('ori')\n",
    "plt.imshow(Y_[img_id])\n",
    "plt.show()\n",
    "print(np.linalg.norm(Y_[img_id] - rec_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9757347681628861\n",
      "(50000, 600)\n",
      "(600, 1520)\n",
      "0.9750842718859883\n",
      "(50000, 600)\n",
      "(600, 1520)\n",
      "0.9751633457320403\n",
      "(50000, 600)\n",
      "(600, 1520)\n"
     ]
    }
   ],
   "source": [
    "# PCA, per channel\n",
    "from sklearn.decomposition import PCA\n",
    "num_pc = 600\n",
    "\n",
    "all_pc_wts = []\n",
    "all_pc = []\n",
    "for channel in range(3):\n",
    "    pca = PCA(n_components=num_pc)\n",
    "    pc_wts = pca.fit_transform(all_wts[channel])\n",
    "\n",
    "    print(pca.explained_variance_ratio_.sum())\n",
    "    all_pc_wts.append(pc_wts)\n",
    "    print(pc_wts.shape)\n",
    "    all_pc.append(pca.components_)\n",
    "    print(pca.components_.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50000, 600)"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_pc_wts[0].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 600/600 [00:46<00:00, 12.86it/s]\n",
      "(1000000, 1520)\n",
      "100%|██████████| 600/600 [00:46<00:00, 12.98it/s]\n",
      "(1000000, 1520)\n",
      "100%|██████████| 600/600 [00:46<00:00, 12.96it/s]\n",
      "(1000000, 1520)\n"
     ]
    }
   ],
   "source": [
    "# generate random pc weights\n",
    "num_noise = 1000000\n",
    "\n",
    "all_noise_gabor_wts = []\n",
    "for channel in range(3):\n",
    "    pc_wts = all_pc_wts[channel]\n",
    "    pc = all_pc[channel]\n",
    "    noise_wts = np.random.rand(num_noise, num_pc)\n",
    "    with tqdm(total=num_pc, file=sys.stdout) as pbar:\n",
    "        for i in range(num_pc):\n",
    "            cur_max = pc_wts[:, i].max()\n",
    "            cur_min = pc_wts[:, i].min()\n",
    "            cur_wts = noise_wts[:, i]\n",
    "            cur_wts = (cur_wts - cur_wts.min())/(cur_wts.max() - cur_wts.min())\n",
    "            noise_wts[:, i] = cur_wts * (cur_max - cur_min) + cur_min\n",
    "\n",
    "            pbar.update(1)\n",
    "    noise_gabor_wts = noise_wts.dot(pc)\n",
    "    print(noise_gabor_wts.shape)\n",
    "    all_noise_gabor_wts.append(noise_gabor_wts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.save('cache/cifar_noise_gabor_wts_color.npy', np.stack(all_noise_gabor_wts))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1000000, 32, 32)\n",
      "100%|██████████| 1000000/1000000 [00:11<00:00, 90519.32it/s]\n",
      "(1000000, 32, 32)\n",
      "100%|██████████| 1000000/1000000 [00:11<00:00, 90036.95it/s]\n",
      "(1000000, 32, 32)\n",
      "100%|██████████| 1000000/1000000 [00:11<00:00, 90040.27it/s]\n",
      "(1000000, 32, 32, 3)\n"
     ]
    }
   ],
   "source": [
    "# noise generation\n",
    "X = np.stack(img_kernels)\n",
    "X = X.reshape(X.shape[0], -1)\n",
    "\n",
    "all_noise = []\n",
    "for channel in range(3):\n",
    "    noise_gabor_wts = all_noise_gabor_wts[channel]\n",
    "    noise = noise_gabor_wts.dot(X).reshape(num_noise, p, p)\n",
    "    print(noise.shape)\n",
    "    with tqdm(total=num_noise, file=sys.stdout) as pbar:\n",
    "        for i in range(num_noise):\n",
    "            noise[i] = (noise[i] - noise[i].min())/(noise[i].max() - noise[i].min())\n",
    "            pbar.update(1)\n",
    "    all_noise.append(noise)\n",
    "all_noise = np.stack(all_noise, -1)\n",
    "print(all_noise.shape)\n",
    "np.save('cache/cifar_gabor_noise_color.npy', all_noise)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ----------------------------- PASS NOISE TO MODEL -----------------------------"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "IncompatibleKeys(missing_keys=[], unexpected_keys=[])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class Model(nn.Module):\n",
    "    def __init__(self, p):\n",
    "        super(Model, self).__init__()\n",
    "\n",
    "        self.conv1 = nn.Sequential(\n",
    "            # Conv Layer block 1\n",
    "            nn.Conv2d(in_channels=3, out_channels=p, kernel_size=3, padding=1),\n",
    "            nn.BatchNorm2d(p),\n",
    "            nn.ReLU(inplace=True),\n",
    "            nn.Conv2d(in_channels=p, out_channels=64, kernel_size=3, padding=1),\n",
    "            nn.ReLU(inplace=True)\n",
    "        )\n",
    "        self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "\n",
    "        self.conv2 = nn.Sequential(\n",
    "            # Conv Layer block 2\n",
    "            nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, padding=1),\n",
    "            nn.BatchNorm2d(128),\n",
    "            nn.ReLU(inplace=True),\n",
    "            nn.Conv2d(in_channels=128, out_channels=128, kernel_size=3, padding=1),\n",
    "            nn.ReLU(inplace=True)\n",
    "        )\n",
    "        self.pool2 = nn.Sequential(\n",
    "            nn.MaxPool2d(kernel_size=2, stride=2),\n",
    "            nn.Dropout2d(p=0.05)\n",
    "        )\n",
    "\n",
    "        self.conv3 = nn.Sequential(\n",
    "            # Conv Layer block 3\n",
    "            nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=1),\n",
    "            nn.BatchNorm2d(256),\n",
    "            nn.ReLU(inplace=True),\n",
    "            nn.Conv2d(in_channels=256, out_channels=256, kernel_size=3, padding=1),\n",
    "            nn.ReLU(inplace=True)\n",
    "        )\n",
    "        self.pool3 = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "\n",
    "        self.fc_layer1 = nn.Sequential(\n",
    "            nn.Dropout(p=0.1),\n",
    "            nn.Linear(4096, 1024),\n",
    "            nn.ReLU(inplace=True),\n",
    "            nn.Linear(1024, 512),\n",
    "            nn.ReLU(inplace=True)\n",
    "        )\n",
    "        self.fc_layer2 = nn.Sequential(\n",
    "            nn.Dropout(p=0.1),\n",
    "            nn.Linear(512, 10)\n",
    "        )\n",
    "\n",
    "\n",
    "    def forward(self, x):\n",
    "        \"\"\"Perform forward.\"\"\"\n",
    "        \n",
    "        # conv layers\n",
    "        x_conv1 = self.conv1(x)\n",
    "        x_conv2 = self.conv2(self.pool1(x_conv1))\n",
    "        x_conv3 = self.conv3(self.pool2(x_conv2))\n",
    "        x1 = self.pool3(x_conv3)\n",
    "        \n",
    "        # flatten\n",
    "        x2 = x1.view(x1.size(0), -1)\n",
    "        \n",
    "        # fc layer\n",
    "        x3 = self.fc_layer1(x2)\n",
    "        x4 = self.fc_layer2(x3)\n",
    "\n",
    "        return x4, x3, x_conv3, x_conv2, x_conv1\n",
    "      \n",
    "model = Model(p)\n",
    "if cuda:\n",
    "    model.cuda() # CUDA!\n",
    "    \n",
    "bst_mdl = 'cache/models/best_drop.pth'\n",
    "model.load_state_dict(torch.load(bst_mdl)['model'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100/100 [00:32<00:00,  3.13it/s]\n",
      "plane : 6226\n",
      "car : 208\n",
      "bird : 35573\n",
      "cat : 543216\n",
      "deer : 109014\n",
      "dog : 18254\n",
      "frog : 244093\n",
      "horse : 4225\n",
      "ship : 19938\n",
      "truck : 19253\n"
     ]
    }
   ],
   "source": [
    "# greyscale\n",
    "noise = np.load('cache/cifar_gabor_noise.npy')\n",
    "num_noise = noise.shape[0]\n",
    "\n",
    "noise_data = {}\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = []\n",
    "\n",
    "batch_size = 10000\n",
    "model.eval()\n",
    "with tqdm(total=num_noise//batch_size, file=sys.stdout) as pbar:\n",
    "    for i in range(num_noise//batch_size):\n",
    "        data = torch.from_numpy(noise[i * batch_size: (i+1) * batch_size]).float()\n",
    "        if cuda:\n",
    "            data = data.cuda()\n",
    "        with torch.no_grad():\n",
    "            pred = model(data[:,None,...].expand(-1, 3, -1, -1))[0].max(1)[1]\n",
    "            for cls in range(num_cls):\n",
    "                noise_data[cls].append(data[pred==cls].cpu())\n",
    "        pbar.update(1)\n",
    "\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = torch.cat(noise_data[cls])\n",
    "    print(classes[cls], ':', noise_data[cls].shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFSCAYAAACaFsJEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydebRfZXnvvwcyj3AyD2Qgk4IkiF4ihRKGm4oCUgahQSRUWYK21yuXtootJEG9CEXbXte1ai3aVbAKlSpiF7eCyPJeAgbRAElApiQk5JyMTBmAhH3/6MpZ2Z/95Dw7IfucQL6ftbJY7+/s397v8Lzv3pvf9/s+LUVRFDLGGGOMMcaYfcxB3V0BY4wxxhhjzNsTv2wYY4wxxhhjGsEvG8YYY4wxxphG8MuGMcYYY4wxphH8smGMMcYYY4xpBL9sGGOMMcYYYxrBLxvGGGOMMcaYRvDLhjHGGGOMMaYR/LJhjDHGGGOMaQS/bEg66aSTdNJJJ3V3NYwxpsuYP3++WlpatH79+k6P2xfr4y9+8Qu1tLToF7/4xZs6jzEZW7Zs0fz58x1rZo/YuR6aZujR3RUwxhiz//L1r3+9u6tgTG22bNmiBQsWSJL/J6Ix+wl+2TDmbc6OHTu0fft29e7du7urYt6CHHHEEekxjjFjjNkztmzZon79+nV3NbqEt7WMaufPYr/5zW90zjnnaNCgQRo8eLAuuugirVu3rtPvLliwQDNnzlRra6sGDRqkY445Rv/4j/+ooihKx02YMEFnnHGG7rrrLh1zzDHq27ev3vGOd+imm26qnLOtrU2XXXaZxo4dq169emnixIlasGCBtm/fvk/bbd6aPP7445ozZ45GjBih3r17a9y4cbr44ov16quvat26dfrUpz6lI444QgMGDNDw4cN1yimn6Je//GXpHMuXL1dLS4tuuOEGffGLX9TEiRPVu3dv3Xvvvd3UKrO/89xzz3W6PlJGlcXY448/rtNOO039+vXT0KFDdfnll+vll1/u6maZtyBvdg1cvny5hg0bJuk/7+EtLS1qaWnRJZdc0k0tMvsjP/3pT3X00Uerd+/emjhxom688cbKMUVR6Otf/7qOPvpo9e3bV4ceeqjOO+88PfPMM5Vj7777bp166qkaNGiQ+vXrp+OPP1733HNP6Zidz6MPP/ywzjvvPB166KGaNGlSY23c3zggftk4++yzdf755+vyyy/XkiVLdPXVV2vp0qV68MEH1bNnz/A7y5cv12WXXaZx48ZJkh544AH9t//237R69Wpdc801pWMXL16sK6+8Up/73Oc0YsQIffvb39bHP/5xTZ48WSeeeKKk/3zROPbYY3XQQQfpmmuu0aRJk7Rw4UJ98Ytf1PLly/Wd73yn2U4w+zWLFy/WCSecoKFDh+raa6/VlClTtGbNGt1xxx167bXXtHHjRknSvHnzNHLkSL3yyiv6t3/7N5100km65557KnKB//W//pemTp2qG2+8UYMGDdKUKVO6oVXmrcDerI9SHGPt7e2aNWuWevbsqa9//esaMWKEbrnlFv3pn/5pF7bIvBXZF2vgqFGjdNddd+m0007Txz/+cV166aWS1PECYsw999yjs846S8cdd5y+//3va8eOHbrhhhvU3t5eOu6yyy7Td7/7XX3605/W9ddfr40bN+raa6/V7/3e72nx4sUaMWKEJOnmm2/WxRdfrLPOOkv/9E//pJ49e+qb3/ym3v/+9+v//J//o1NPPbV03nPOOUd/9Ed/pMsvv1ybN2/usnZ3O8XbmHnz5hWSiiuuuKL0+S233FJIKm6++eaiKIpi1qxZxaxZs3Z7nh07dhSvv/56ce211xZDhgwp3njjjY6/jR8/vujTp0+xYsWKjs+2bt1atLa2FpdddlnHZ5dddlkxYMCA0nFFURQ33nhjIalYsmTJm2mqeYtzyimnFIccckixdu3aWsdv3769eP3114tTTz21OPvsszs+f/bZZwtJxaRJk4rXXnutqeqatwF7uz52FmOf/exni5aWluK3v/1t6fPZs2cXkop77723kbaYtz77ag1ct25dIamYN29eQzU1b2VmzpxZjB49uti6dWvHZy+99FLR2tpa7HwkXrhwYSGp+MpXvlL67nPPPVf07du3+Iu/+IuiKIpi8+bNRWtra3HmmWeWjtuxY0cxY8aM4thjj+34bOd6e8011zTVtP2at7WMaicf+chHSuXzzz9fPXr06FRa8vOf/1z/9b/+Vw0ePFgHH3ywevbsqWuuuUYbNmzQ2rVrS8ceffTRHb+ASFKfPn00depUrVixouOzO++8UyeffLJGjx6t7du3d/z7wAc+IEm677779kVTzVuQLVu26L777tP555/f6f+B+8Y3vqFjjjlGffr0UY8ePdSzZ0/dc889WrZsWeXYD33oQ53+X2ljdrI366MUx9i9996rI488UjNmzCh9fuGFF+6bypq3JU2sgcaQzZs3a9GiRTrnnHPUp0+fjs8HDhyoM888s6N85513qqWlRRdddFHpeW3kyJGaMWNGx05n999/vzZu3Ki5c+eWjnvjjTd02mmnadGiRZVfL84999wuaev+xgHxsjFy5MhSuUePHhoyZIg2bNgQHv+rX/1Kf/AHfyBJ+od/+Af9v//3/7Ro0SL95V/+pSRp69atpeOHDBlSOUfv3r1Lx7W3t+snP/mJevbsWfp35JFHSlK6/aR5+7Jp0ybt2LFDY8eO3e0xX/3qV/XJT35SM2fO1A9/+EM98MADWrRokU477bRKPErSqFGjmqyyeRuxp+vjTqIY27BhQ+V80TWM2ZUm1kBjyKZNm/TGG2+ka1R7e7uKotCIESMqz2wPPPBAx/PaTunVeeedVznu+uuvV1EUHfK/nRyo9+YDwrPR1tamMWPGdJS3b9+uDRs2hC8JkvT9739fPXv21J133ll6+/3Rj36013UYOnSopk+fri996Uvh30ePHr3X5zZvbVpbW3XwwQdr1apVuz3m5ptv1kknnaS///u/L32+O+Ot9ws3ddnT9XEnUYwNGTJEbW1t4TWM2R1NrIHGkEMPPVQtLS3pGjV06FC1tLTol7/8ZbjD3s7Phg4dKkn62te+pve9733hNXd6O3ZyoN6bD4hfNm655ZZS+dZbb9X27dt3uwd3S0uLevTooYMPPrjjs61bt+qf//mf97oOZ5xxhh577DFNmjRJ733veyv//LJx4NK3b1/NmjVLt912225/4Wppaakseo888ogWLlzYFVU0b2P2dH3sjJNPPllLlizR4sWLS59/73vfezNVNG9z9uUauPMY/9phSP/+/XXsscfq9ttv17Zt2zo+f/nll/WTn/yko3zGGWeoKAqtXr06fF476qijJEnHH3+8DjnkEC1dujQ87r3vfa969erV5e3cHzkgftm4/fbb1aNHD82ePbtjt5UZM2bo/PPPD48//fTT9dWvflUXXnihPvGJT2jDhg268cYb39Qe8tdee61+9rOf6fd+7/f06U9/WtOmTdO2bdu0fPly/fu//7u+8Y1vdPoTsnl789WvflUnnHCCZs6cqc997nOaPHmy2tvbdccdd+ib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mcaY/ZZ58+aF69enPvWpok+fPsUbb7xRe40riqIYP358cfDBBxdPPPFE6dgbb7yxkFS88MILu63LddddVxx00EHFokWLSp//67/+ayGp+Pd///e9baZ5izFgwIDiM5/5zG7/PmvWrEJS8eCDD5Y+P+KII4r3v//9HeVnn322kFR85zvf6fhsZ8xfccUVpe/ecssthaTi5ptv3jeNMG8Z/vqv/7qQVDz77LOlz3e3nkVxtRNJxbx58zrKp5xySnHIIYcUa9eu3e31v/Od7xSSikWLFhU/+9nPikGDBhXnnXde6dnz7c4BK6PavHmzFi1apHPOOUd9+vTp+HzgwIE688wzO8o7/88cZVAf/vCH1b9/f91zzz2SpPvuu0+SdP7555eOO++889SjxwH9A5LZQ84999xSeeHChdq6dWslBg877DCdcsopHTH4xBNPqK2trRKD48aN0/HHH99onc3+zYc+9KFSefr06dq2bZvWrl1be43b9bvczOC//Jf/Iuk/179bb71Vq1evrtThzjvv1Lve9S4dffTR2r59e8e/97///R2yBnNgcOyxx+q73/2uvvjFL+qBBx7Q66+/Xjlm5MiROvbYY0ufTZ8+XStWrKh1jY985COl8vnnn68ePXro3nvv3fuKm7cd0XpWly1btui+++7T+eefr2HDhqXH/9M//ZM++MEP6tJLL9Wtt95aevZ8u3PAvmxs2rRJb7zxhkaOHFn5266fbdiwQT169KgEUktLi0aOHNnxs+/O/44YMaJ0XI8ePTRkyJB9XX3zNqVfv34aNGhQ6bOdsbXz599dGT16dBqDu/vMHDhwDdr50/7WrVtrr3E7ieLwxBNP1I9+9CNt375dF198scaOHat3vetd+pd/+ZeOY9rb2/XII4+oZ8+epX8DBw5UURTenvcA4gc/+IHmzp2rb3/72zruuOPU2tqqiy++WG1tbR3HRPfN3r17a+vWrbWuwXv7znsx49kc2ETrWV02bdqkHTt2aOzYsbWO//73v6++ffvq0ksvPeAkowfsy8ahhx6qlpaW0uK2Ey5427dvrxjLiqJQW1tbh9Zu58K4q99DkrZv3+7FzdQmWoB2xtaaNWsqf3v++efTGJQUxrkxUv01bie7u0meddZZuueee/Tiiy/qF7/4hcaOHasLL7xQCxculCQNHTpURx11lBYtWhT+u/rqq5tpoNnvGDp0qP72b/9Wy5cv14oVK3Tdddfp9ttv36cbqXDN23kv9v/8M7sSrWc7f3Gg15HPcq2trTr44IO1atWqWte65ZZb9I53vEOzZs064PJqHbAvG/3799exxx6r22+/Xdu2bev4/OWXX9ZPfvKTjvLO3YBuvvnm0vd/+MMfavPmzR1/P/HEEyX95/+x2ZV//dd/7TD5GrM3HHfccerbt28lBletWqWf//znHTE4bdo0jRw5UrfeemvpuJUrV+r+++/vsvqatxZ117i69O7dW7NmzdL1118vSfrNb34jSTrjjDP09NNPa8iQIXrve99b+efd0g5Mxo0bpz/90z/V7Nmz9fDDD++z895yyy2l8q233qrt27frpJNO2mfXMG8Ndv0ltw4jRoxQnz599Mgjj5Q+//GPf1wq9+3bV7NmzdJtt91W65fZ1tZW3X333XrnO9+pk08+WQ888EDNFrz1OaDNBF/4whd02mmnafbs2bryyiu1Y8cOXX/99erfv782btwoSZo9e7be//7367Of/axeeuklHX/88R07tbz73e/WRz/6UUnSkUceqTlz5ugrX/mKDj74YJ1yyilasmSJvvKVr2jw4ME66KAD9r3OvEkOOeQQXX311fr85z+viy++WHPmzNGGDRu0YMEC9enTR/PmzZMkHXTQQVqwYIEuu+wynXfeefrYxz6mF154QQsWLNCoUaMcgyak7hrXGddcc41WrVqlU089VWPHjtULL7ygv/u7v1PPnj078sh85jOf0Q9/+EOdeOKJuuKKKzR9+nS98cYbWrlypf7jP/5DV155pWbOnNl0c0038+KLL+rkk0/WhRdeqHe84x0aOHCgFi1apLvuukvnnHPOPrvO7bffrh49emj27Nkdu1HNmDGj4mkzb3+OOuooSdLf/d3fae7cuerZs6emTZu22+NbWlp00UUX6aabbtKkSZM0Y8YM/epXv9L3vve9yrFf/epXdcIJJ2jmzJn63Oc+p8mTJ6u9vV133HGHvvnNb2rgwIGl4wcOHNgR67Nnz9Ydd9yhk08+ed82eH+kmw3q3c4dd9xRTJ8+vejVq1cxbty44stf/nLHbhY72bp1a/HZz362GD9+fNGzZ89i1KhRxSc/+cli06ZNpXNt27at+B//438Uw4cPL/r06VO8733vKxYuXFgMHjy4sjOGObDZ3W5U/fv33+13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cSzNV9ieT4nr7n/+Z0NERERERA7Blw0RERERETkEXzZEREREROQQfNkQEREREZFDWDaI3759e9NuRU1megElmodopl2BRkUarljwiv2mSXFmb3Slsb0Vy0sFrWhaooGN5lgap2jqTEZtGrZoYmI/GatkquMcJhPvKbh79+6m/fLly007Gcc414S5w2uwfXFxsbsGDb0sjnd2drZp04SeTPmtgBp/34oTzuxzg3nPfOPaZB6k/GM/20EL7FMyB7JfaW2dCu4l7H8qdsQ4cozMMZoI2Wa+pX7w0AHu3bxmMrq2gqzcy7kvsAjbTC+G12LDHEwmYT6HmHPXKVLKeb2pwqZc5ysFzzjeVlyW88p4pnu0YmWtcGC6ZjuIhP1ivq3Eoo39qrGa6YfJNHN3yukV0+4paAXj0mE7zIVWZJNw7Ck+fKYyd/i9ZuVQiFbcshndE/9232iHO8zs94T2fGnjXLnGKv5nQ0REREREDsGXDREREREROQRfNkRERERE5BCWPRv0DFCLlzRr1PA1TTf12PRwJM0b9XbUq7O9ovslf/7556ZNfSj7nXSI/Ax1rNTQ8/PU67I9sy/a1wq6kORxSHrum4D5t6I7Z7417wO1nisF5DhPvAa17NRZpn6zX5w3jv2vv/7atOnVmeladrbZh5U8oDaW65faT/oPOI6Z/ZzdZFE/xqSt0Zm+B3L/ap6UtLdwP2I/2ebevaLDZ79Tjr1LKnDIPOY1OHbuzcyv5AshHGvTH6c9kGvnpjwbHG/zV8zs57EV6Wt7z0oBPs4T2614XrpP0/6TNEe85r/1QqS/b98n2l6e9PC8z00V9SPsa/JkcbzcD1sRSZLiy5zlOuAzeMV7w/twX+DetVLorvkgr1rIcqVwYPNWcz9c2f+uu278z4aIiIiIiByCLxsiIiIiInIIvmyIiIiIiMgh/Nd//185xFlERERERP5f4X82RERERETkEHzZEBERERGRQ/BlQ0REREREDsGXDREREREROQRfNkRERERE5BB82RARERERkUPwZUNERERERA7Blw0RERERETkEXzZEREREROQQ/gffFe9c4qB+DAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# greyscale noise mean\n",
    "noise_avg = []\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for cls in range(num_cls):\n",
    "    a = noise_data[cls].mean(0).numpy()\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    noise_avg.append(a)\n",
    "    plt.subplot(2, 5, cls+1)\n",
    "    plt.axis('off')\n",
    "    plt.title(f'{classes[cls]}')\n",
    "    plt.imshow(a, cmap='Greys')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100/100 [00:38<00:00,  2.64it/s]\n",
      "plane : 72859\n",
      "car : 16816\n",
      "bird : 152686\n",
      "cat : 194493\n",
      "deer : 85048\n",
      "dog : 98723\n",
      "frog : 261067\n",
      "horse : 16355\n",
      "ship : 26550\n",
      "truck : 75403\n"
     ]
    }
   ],
   "source": [
    "# colored\n",
    "noise = np.load('cache/cifar_gabor_noise_color.npy')\n",
    "num_noise = noise.shape[0]\n",
    "\n",
    "noise_data = {}\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = []\n",
    "\n",
    "batch_size = 10000\n",
    "model.eval()\n",
    "with tqdm(total=num_noise//batch_size, file=sys.stdout) as pbar:\n",
    "    for i in range(num_noise//batch_size):\n",
    "        data = torch.from_numpy(noise[i * batch_size: (i+1) * batch_size]).float()\n",
    "        if cuda:\n",
    "            data = data.cuda()\n",
    "        with torch.no_grad():\n",
    "            pred = model(data.permute(0, 3, 1, 2))[0].max(1)[1]\n",
    "            for cls in range(num_cls):\n",
    "                noise_data[cls].append(data[pred==cls].cpu())\n",
    "        pbar.update(1)\n",
    "\n",
    "for cls in range(num_cls):\n",
    "    noise_data[cls] = torch.cat(noise_data[cls])\n",
    "    print(classes[cls], ':', noise_data[cls].shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFSCAYAAACaFsJEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9e6xtV1n//cz7ZV33Wmvfzjm9cVrwhUBrIVSB0EKt1rRIwNoIEorBUPBVosEoCbGlBaNg5Q/JixClagRD5BW56YuRCgQVtHipPykFgZ72XPZ13dea9znH+4fpid9nLGBTuvbu5fkk54+xzlxzjjnGM8aYc6/vdzyGUkqRIAiCIAiCIAjCY4x51BUQBEEQBEEQBOHJibxsCIIgCIIgCIKwFORlQxAEQRAEQRCEpSAvG4IgCIIgCIIgLAV52RAEQRAEQRAEYSnIy4YgCIIgCIIgCEtBXjYEQRAEQRAEQVgK8rIhCIIgCIIgCMJSkJcNQRAEQRAEQRCWgrxsENE111xD11xzzVFXQxAE4dB4+9vfToZh0P7+/nc97rGYHz//+c+TYRj0+c9//gc6jyB8L6Ioore//e0Sa8L3xSPzobAc7KOugCAIgvD45X3ve99RV0EQDkwURXTHHXcQEckfEQXhcYK8bAjCk5yyLKkoCvI876irIjwBeeYzn/k9j5EYEwRB+P6IoojCMDzqahwKT2oZ1SM/i/37v/87vfKVr6Rms0mtVote85rX0N7e3nf97h133EFXXXUVdTodajabdOWVV9IHP/hBUkrBcRdffDHdeOON9JnPfIauvPJKCoKAfuiHfojuvvtu7Zzb29t066230okTJ8h1XbrkkkvojjvuoKIoHtP7Fp6YPPDAA/SqV72K1tfXyfM8uvDCC+m1r30tpWlKe3t79Iu/+Iv0zGc+k+r1Oq2trdFLX/pS+uIXvwjnOHXqFBmGQe9+97vpne98J11yySXkeR597nOfO6K7Eh7vnD59+rvOj1xG9b1i7IEHHqDrr7+ewjCkXq9Hb3zjG2k6nR72bQlPQH7QOfDUqVO0urpKRP+zhhuGQYZh0Ote97ojuiPh8chf//Vf0xVXXEGe59Ell1xCd911l3aMUore97730RVXXEFBENDKygrddNNN9O1vf1s79rOf/Sxde+211Gw2KQxDeuELX0j33HMPHPPI8+i//du/0U033UQrKyt08uTJpd3j442nxC8br3jFK+jmm2+mN77xjfTVr36VfvM3f5Puv/9++ud//mdyHGfhd06dOkW33norXXjhhURE9OUvf5l++Zd/mc6ePUu33XYbHHvffffRW97yFnrrW99K6+vr9Ed/9Ef0+te/ni699FJ68YtfTET/86Lx/Oc/n0zTpNtuu41OnjxJX/rSl+id73wnnTp1iv74j/94uY0gPK6577776EUvehH1ej2688476bLLLqOtrS365Cc/SVmW0WAwICKi22+/nTY2Nmg2m9Ff/dVf0TXXXEP33HOPJhf4/d//fXr6059Od911FzWbTbrsssuO4K6EJwKPZn4kWhxjOzs7dPXVV5PjOPS+972P1tfX6cMf/jD90i/90iHekfBE5LGYAzc3N+kzn/kMXX/99fT617+efuEXfoGI6PwLiCDcc8899PKXv5x+9Ed/lD7ykY9QWZb07ne/m3Z2duC4W2+9lf7kT/6E3vzmN9O73vUuGgwGdOedd9ILXvACuu+++2h9fZ2IiD70oQ/Ra1/7Wnr5y19Of/qnf0qO49AHPvAB+omf+An627/9W7r22mvhvK985SvpZ3/2Z+mNb3wjzefzQ7vvI0c9ibn99tsVEalf/dVfhc8//OEPKyJSH/rQh5RSSl199dXq6quv/o7nKctS5Xmu7rzzTtXtdlVVVef/76KLLlK+76uHHnro/GdxHKtOp6NuvfXW85/deuutql6vw3FKKXXXXXcpIlJf/epXf5BbFZ7gvPSlL1Xtdlvt7u4e6PiiKFSe5+raa69Vr3jFK85//uCDDyoiUidPnlRZli2rusKTgEc7P363GPuN3/gNZRiG+o//+A/4/LrrrlNEpD73uc8t5V6EJz6P1Ry4t7eniEjdfvvtS6qp8ETmqquuUseOHVNxHJ//bDKZqE6nox55JP7Sl76kiEj93u/9Hnz39OnTKggC9eu//utKKaXm87nqdDrqZS97GRxXlqW6/PLL1fOf//zznz0y3952223LurXHNU9qGdUj/NzP/RyUb775ZrJt+7tKS/7+7/+efuzHfoxarRZZlkWO49Btt91G/X6fdnd34dgrrrji/C8gRES+79PTn/50euihh85/9ulPf5pe8pKX0LFjx6goivP/fvInf5KIiL7whS88FrcqPAGJooi+8IUv0M033/xd/wL3/ve/n6688kryfZ9s2ybHceiee+6hr33ta9qxP/VTP/Vd/yotCI/waOZHosUx9rnPfY6e9axn0eWXXw6fv/rVr35sKis8KVnGHCgInPl8Tvfeey+98pWvJN/3z3/eaDToZS972fnypz/9aTIMg17zmtfA89rGxgZdfvnl53c6+6d/+icaDAZ0yy23wHFVVdH1119P9957r/brxU//9E8fyr0+3nhKvGxsbGxA2bZt6na71O/3Fx7/L//yL/TjP/7jRET0h3/4h/SP//iPdO+999Lb3vY2IiKK4xiO73a72jk8z4PjdnZ26FOf+hQ5jgP/nvWsZxERfc/tJ4UnL8PhkMqypBMnTnzHY97znvfQm970JrrqqqvoL//yL+nLX/4y3XvvvXT99ddr8UhEtLm5ucwqC08ivt/58REWxVi/39fOt+gagvC/WcYcKAic4XBIVVV9zzlqZ2eHlFK0vr6uPbN9+ctfPv+89oj06qabbtKOe9e73kVKqfPyv0d4qq7NTwnPxvb2Nh0/fvx8uSgK6vf7C18SiIg+8pGPkOM49OlPfxrefj/+8Y8/6jr0ej16znOeQ7/1W7+18P+PHTv2qM8tPLHpdDpkWRadOXPmOx7zoQ99iK655hr6gz/4A/j8OxlvZb9w4aB8v/PjIyyKsW63S9vb2wuvIQjfiWXMgYLAWVlZIcMwvucc1ev1yDAM+uIXv7hwh71HPuv1ekRE9N73vpd+5Ed+ZOE1H/F2PMJTdW1+Svyy8eEPfxjKf/EXf0FFUXzHPbgNwyDbtsmyrPOfxXFMf/Znf/ao63DjjTfSf/3Xf9HJkyfpec97nvZPXjaeugRBQFdffTV99KMf/Y6/cBmGoU16//mf/0lf+tKXDqOKwpOY73d+/G685CUvoa9+9at03333wed//ud//oNUUXiS81jOgY8cI792CJxarUbPf/7z6WMf+xglSXL+8+l0Sp/61KfOl2+88UZSStHZs2cXPq89+9nPJiKiF77whdRut+n+++9feNzznvc8cl330O/z8chT4peNj33sY2TbNl133XXnd1u5/PLL6eabb154/A033EDvec976NWvfjW94Q1voH6/T3fdddcPtIf8nXfeSX/3d39HL3jBC+jNb34zPeMZz6AkSejUqVP0N3/zN/T+97//u/6ELDy5ec973kMvetGL6KqrrqK3vvWtdOmll9LOzg598pOfpA984AN044030jve8Q66/fbb6eqrr6avf/3rdOedd9Ill1wiWycLPxDf7/z43fiVX/kVuvvuu+mGG26gd77zned3o3rggQeWUHPhycRjNQc2Gg266KKL6BOf+ARde+211Ol0qNfr0cUXX3x0Nyc8bnjHO95B119/PV133XX0lre8hcqypHe9611Uq9XOS55e+MIX0hve8Ab6+Z//efrKV75CL37xi6lWq9HW1hb9wz/8Az372c+mN73pTVSv1+m9730v3XLLLTQYDOimm26itbU12tvbo/vuu4/29va0X+KeshyxQX2pPOL+/9d//Vf1spe9TNXrddVoNNSrXvUqtbOzc/64RbtR3X333eoZz3iG8jxPPe1pT1O//du/rT74wQ8qIlIPPvjg+eMuuugidcMNN2jXXnTOvb099eY3v1ldcsklynEc1el01HOf+1z1tre9Tc1ms8fy1oUnIPfff7/6mZ/5GdXtdpXruurCCy9Ur3vd61SSJCpNU/Vrv/Zr6vjx48r3fXXllVeqj3/84+qWW25RF1100flzPLJT0O/+7u8e3Y0ITwge7fz4vWLs/vvvV9ddd53yfV91Oh31+te/Xn3iE5+Q3aiE78ljMQcqpdRnP/tZ9cM//MPK8zxFROqWW245kvsRHp988pOfVM95znPOx9jv/M7vnJ8P/zd33323uuqqq1StVlNBEKiTJ0+q1772teorX/kKHPeFL3xB3XDDDarT6SjHcdTx48fVDTfcoD760Y+eP+aR8+/t7R3KPT7eMJRiWeqeRLz97W+nO+64g/b29s5r6wRBEARBEARBOByeEp4NQRAEQRAEQRAOH3nZEARBEARBEARhKTypZVSCIAiCIAiCIBwd8suGIAiCIAiCIAhLQV42BEEQBEEQBEFYCvKyIQiCIAiCIAjCUpCXDUEQBEEQBEEQlsKBM4j/4cf/DsrbozmUh1ZCnCwxoJwPcyg3/QCP91pQjrIUytNool2jcDAVvFur4zkczPod17FObol1IiJKEszI7CYVlFuE9fI8C8rtZkc7ZyPFernMl18m2J6Gge+BxgT/v5hH2jWiCD8rc7w31VyB8sCpQbld4DWIiFosa7pVYvn2t16tfWcZ/PPdb4Tydn8G5bGp172YYxtnQ9aPLsZf7mH7zHKMg3GkX6NysO/NBp6D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cfnWb/1Wufjii+Xf//3fH8kqPyo5p3/Z+PSnPy0vfvGL5RnPeIZ88IMflKZp5D3veY+cPHny7DnGGPm+7/s++fSnPy033HCDfMd3fId84QtfkBtvvFGOHTsmx44dkyiKRETkB37gB+RDH/qQ/PRP/7Q897nPlS996Uvykpe8RHZ2dvarisqjkHe84x1y+eWXyxvf+Eb5xV/8RbnqqqtkOBzKe97zHinLUl70ohfJG97wBnnb294mdV2LiMgtt9wib3/72+Waa66RW265RTY2NuSmm26SZzzjGXLHHXfIxRdfLCIit956q7zhDW+Ql73sZfLe975XxuOx3Hzzzf/lpKd84/Oyl71MXvWqV8kP/uAPyhe/+EW54YYbROSrL7D/kzlOROTzn/+8fPnLX5af+ZmfkYsuukh6vZ4cO3ZMXvWqV8mrXvUquemmmySOY7nnnnvkL//yL89+bz6fy5VXXin333+/vP3tb5fLLrtM7rzzTvnZn/1Z+eIXvyif+tSn1Ct3jvDa175WPv/5z8s73/lOueSSS2R7e1s+//nPy8bGxtlzTpw4Id///d8vb3nLW+TGG2+UP/qjP5IbbrhBjh49Ktdee+1/e4+XvOQl8spXvlJ++Id/WO688055xzveIV/60pfk7/7u7yQIgkVWT3kU8frXv142NzflN37jN+T222+XI0eOiIjIk570JBHpns/+J/zzP/+zPOtZz5K1tTX5uZ/7Obn44ovl+PHj8rGPfUzKsoS58wz/8i//Ii94wQvk/PPPl2PHjsna2tr/vqKPdsw5zBVXXGGOHj1qsiw7+7ednR2zsrJizjTNJz7xCSMi5j3veQ9890Mf+pAREXPrrbcaY4y58847jYiYt771rXDeBz7wASMi5rrrrltsZZSvKz7zmc8YETEf+chHzv7tuuuuMyJi3ve+98G5W1tbJkkS84IXvAD+fu+995ooisyrX/1qY4wxTdOYw4cPmyuuuALOu+eee0wQBObCCy9cTGWURy033nhj5/z1oz/6oyaOY9O27a7nOGOMufDCC43neeYrX/kKnPvLv/zLRkTM9vb2Q5bllltuMa7rmjvuuAP+/tGPftSIiPnzP//zh1tN5euMfr9v3vSmNz3k51deeaUREfN3f/d38PcnPelJ5vnPf/7Z47vuusuIiPnd3/3ds387E/NvfvOb4bu33XabERHz+7//+49MJZSvG37pl37JiIi566674O8PNZ91xdUZRMTceOONZ4+f+9znmqWlJXPq1KmHvP/v/u7vGhExd9xxh/mLv/gLMxwOzctf/nJ49vxG55yVUc1mM7njjjvkpS99qcRxfPbvg8FAXvjCF549PvMvcyyDesUrXiG9Xk8+/elPi4jIX//1X4uIyCtf+Uo47+Uvf7n4/jn9A5LyP+RlL3sZHB87dkyyLLNi8DGPeYw897nPPRuDX/nKV+TEiRNWDF5wwQXyzGc+c6FlVh7dvOhFL4Ljyy67TPI8l1OnTu16jvva7/JmBt/+7d8uIl+d/z784Q/LAw88YJXhz/7sz+TJT36yfMu3fIvUdX32v+c///lnZQ3KucHll18u73//++UXfuEX5G//9m+lqirrnMOHD8vll18Of7vsssvknnvu2dU9vv/7vx+OX/nKV4rv+/KZz3zm4Rdc+Yajaz7bLfP5XP76r/9aXvnKV8qBAwf+2/N/7/d+T17wghfI61//evnwhz8Mz57f6JyzLxtbW1vStq0cPnzY+uxr/7axsSG+71uB5DiOHD58+OzPvmf+f+jQITjP931ZXV19pIuvfIOSpqkMh0P425nYOvPz79dy9OjR/zYGH+pvyrkDz0FnftrPsmzXc9wZuuLw2c9+tvzxH/+x1HUt1157rZx//vny5Cc/WT7wgQ+cPefkyZPyhS98QYIggP8Gg4EYY3R73nOID33oQ3LdddfJ7/zO78gznvEMWVlZkWuvvVZOnDhx9pyudTOKIsmybFf34LX9zFrM8ayc23TNZ7tla2tLmqaR888/f1fnf/CDH5QkSeT1r3/9OScZPWdfNpaXl8VxHJjczsATXl3XlrHMGCMnTpw4q7U7MzF+rd9DRKSua53clF3TNQGdia3jx49bnz344IP/bQyKSGecK4rI7ue4MzzUIvniF79YPv3pT8t4PJa/+qu/kvPPP19e/epXy7Fjx0REZG1tTZ7ylKfIHXfc0fnfO97xjsVUUHnUsba2Jr/2a78md999t9xzzz1yyy23yO233/6IbqTCc96ZtVj/8U/5WrrmszO/OLDXkZ/lVlZWxPM8uf/++3d1r9tuu02e+MQnypVXXnnO5dU6Z182er2eXH755XL77bdLnudn/z6ZTORP//RPzx6f2Q3o93//9+H7f/iHfyiz2ezs589+9rNF5Kv/YvO1fPSjHz1r8lWUh8MznvEMSZLEisH7779f/vIv//JsDD7hCU+Qw4cPy4c//GE4795775XPfvaze1Ze5euL3c5xuyWKIrnyyivl3e9+t4iI/OM//qOIiHzv936v/Md//Iesrq7Kt33bt1n/6W5p5yYXXHCB/NiP/ZhcffXV8vnPf/4Ru+5tt90Gxx/+8Ielrmt5znOe84jdQ/n64Gt/yd0Nhw4dkjiO5Qtf+AL8/U/+5E/gOEkSufLKK+UjH/nIrn6ZXVlZkU996lPyzd/8zXLVVVfJ3/7t3+6yBl//nNNmgp//+Z+X7/qu75Krr75a3vKWt0jTNPLud79ber2ebG5uiojI1VdfLc9//vPlrW99q+zs7Mgzn/nMszu1PO1pT5PXvva1IiJy6aWXyjXXXCO/8iu/Ip7nyXOf+1y588475Vd+5VdkNBqJ656z73XK/5KlpSV5xzveIW9/+9vl2muvlWuuuUY2Njbk5ptvljiO5cYbbxQREdd15eabb5Y3vOEN8vKXv1xe97rXyfb2ttx8881y5MgRjUGlk93Ocf8VP/uzPyv333+/PO95z5Pzzz9ftre35dd//dclCIKzeWTe9KY3yR/+4R/Ks5/9bHnzm98sl112mbRtK/fee6988pOflLe85S1yxRVXLLq6yj4zHo/lqquukle/+tXyxCc+UQaDgdxxxx3yiU98Ql760pc+Yve5/fbbxfd9ufrqq8/uRvXUpz7V8rQp3/g85SlPERGRX//1X5frrrtOgiCQJzzhCQ95vuM48prXvEbe9773yeMe9zh56lOfKn//938vf/AHf2Cd+6u/+qvyrGc9S6644gp529veJo9//OPl5MmT8rGPfUx+67d+SwaDAZw/GAzOxvrVV18tH/vYx+Sqq656ZCv8aGSfDer7zsc+9jFz2WWXmTAMzQUXXGDe9a53nd3N4gxZlpm3vvWt5sILLzRBEJgjR46YH/mRHzFbW1twrTzPzU/8xE+YgwcPmjiOzdOf/nRz7NgxMxqNrJ0xlHObh9qNqtfrPeR3fud3fudsrI5GI/PiF7/Y3HnnndZ5t956q3n84x9vwjA0l1xyiXnf+95nXvziF5unPe1pC6mL8ujlzFx2+vRp+PuZ3VHO7M6y2znuwgsvNN/zPd9j3efP/uzPzHd/93eb8847z4RhaA4ePGhe8IIXmL/5m7+B86bTqfmZn/kZ84QnPOFsHD/lKU8xb37zm82JEyce2corj0ryPDc//MM/bC677DIzHA5NkiTmCU94grnxxhvNbDYzxnx1N6pLL73U+u51110Hu+r9V7tRfe5znzMvfOELTb/fN4PBwFxzzTXm5MmTi66e8ijlhhtuMEePHjWu6xoRMZ/5zGcecj4zxpjxeGxe//rXm0OHDpler2de+MIXmrvvvtvajcoYY770pS+ZV7ziFWZ1dfXss+T1119v8jw3xuBuVGcoisK87GUvM3Ecm49//OMLq/ejBccYY/btTecc4LOf/aw885nPlNtuu01e/epX73dxlHOQ7e1tueSSS+T7vu/75NZbb93v4iiKoiyMm266SW6++WY5ffr0uZG/QFG+DjinZVSPNH/xF38hx44dk2/91m+VJEnkn//5n+Vd73qXXHzxxY/oz8OK8lCcOHFC3vnOd8pVV10lq6urcs8998h73/temUwm8uM//uP7XTxFURRFUc4x9GXjEWQ4HMonP/lJ+bVf+zWZTCaytrYm3/3d3y233HLLObWfsrJ/RFEkd999t/zoj/6obG5uSpqm8vSnP11+8zd/Uy699NL9Lp6iKIqiKOcYKqNSFEVRFEVRFGUh6PY0iqIoiqIoiqIsBH3ZUBRFURRFURRlIejLhqIoiqIoiqIoC2HXBvFPfuTn4PjkxhSOx+7c+k41a+G4XsdM2stBCsdlsgTHM0oVP52NrXu0SQTHXh+vOQ9COC6W0KLiunZ27yrH+wYGz+l7ORxHeEsZLS1b10wETwo8vGZhtuHYUAI2Z74Fx3WJ54uIzCbYB22L5XRW+nC8EQzheFTPrGsu9zBE2hyv8cYX/b/WdxbBRz/+bjg+vo11Hbt2ZtByhn1dblRwPAzRtF+HWLdZie03yTriz8P28Yd4zVmE8ZcPGjzfYJlERPIS4y8uMFYGDpYrpPhb7dnx12/wpLDFa5piB44d8eDYm07wgjMc/yIi8zmWu22wbu5gBMdbFH/DBuslIrJM49vUWI//8yPvtb6zKP7vb2F9tsY4XmbSNZdgO9YTvEbqYnxUMdYvr0o4ns/tMVoHARwHPWyzwsUylAl+33PtGKxzvG8gGLepi5/7Ac5XvR72rYhILHhjt8Vr1gavaa1OGX7eNIUwZYXzgqEYlD6NcRqfvcZex/oRFsSlf6N75/85an1nEVz15gfgeEzjbebieisiUhZY9maGbR57OF81HvZRUWP7ZRQXIiKNi/cII2yfkubIkmIlEHvc1yXWJahxbPUE6+75GONpSpOiiMQGx4lHdtWG5h/HITtrgW3RVnZb1LRmNAbb28Q4LmY+lintiOkkwPHstw4cf+62x1rfWQS33PofcHxqHdfcsWPPI2WO9au3aC1ze3BcUftk1Mazqb3ON9Q+QR/HdOZiGfIBxorv2PFXzbEuQUPPgC6twQFec0RrnYhIarCcYYPxVbW4pjoefu7M6PmuxDVbRCTLcZ1uGmw/d4QJBscRjv9BZa/rwwTb06X4e+/b/h/rO13oLxuKoiiKoiiKoiwEfdlQFEVRFEVRFGUh6MuGoiiKoiiKoigLYdeejbxA/dhGiRq1ncbWiwpp0tYi1Mv2CtTrOS2++2Q1aXwLW68nBjXM4QHyGAxQJ9dQud0OvV5RkO4twrpFMer5BqQnHRa27rJ/AP0o8xrL0ZKGfiyoi3Ow6SR08HMREdNDnaq7jXrRzFA9VvEafWpvEZHGYHtWVd86Zy+YNRgbp2rs121jtzmFkywPsOx+iXrFir5Q0vCoO+5Rs1dpBfWN7RD7uSqpPVtb9zsn70w5wH5LfNL9N9jPnmN7B6Jl1JBWGen4Se89r7EtPNK5Jn176mjm2CcyxvE69+iaq9j+MfWpiEjZot62MbYXYK8oZzRGJ1i2WW1rltsa27VX4Bj1K6ofWTJaqn9b2P8+ZHyMwSbCcW1Sisk5zstta5e7KlG72wZYj9gnTX1JXqSOtvAHqBeuKopBmgMzGiuOYLkD315zKkNrSoFtU2c0Nsgj43v2HMjzgmlC65y9oKDqbtRY17l0zE8OeQIirF9b4ZjjuuYGY6k0tqa7FZzD2h75QMjz0pTklbCnK6lJv177WI7QI58S+8Nqe133eli3usLjinxqOf1brEPjKojtFGVVRfGTYZ9U5J9qyNvkdIzFsqE1owysc/aCnOam01Os66S226NtsexLLT4HRRnGcJtRrFCMt/Ou+Y/innymLvkSHArhpu3wOs3JH+Fj3frkO4rJyxRXtp8iHdIaXP7X8Tjl+KO1IAzseagya/idCT7LZnN6/u3hnBy5dmxZ81/18OY//WVDURRFURRFUZSFoC8biqIoiqIoiqIsBH3ZUBRFURRFURRlIezas/HgfAOOt6bkKZjYHoI6QM12RHsRu7TPtQnwuOej1q5dtz0b0x3Uxh0ckc6X9I2lj5o2E6PWWERkklK+ANJmHqIcGP0MRYB+a2tnVwaoAQymKFQNSI8X0/77hvbjbn1b20lycCka2nu8h+Ua9U5iGXJbc1ls4X2dbH/0yvdXmONinfePn9vlKiNs86UE+7qkfCnzFPvEMdQHuS0uzgrs+xFpVBPSN6YBalZNZF9zNsJysV60ZzD+0m0Soda2DySgPCSmwLZoC+znHunSPcFjx7VzjsgQy1VQDPuk+x/1N+E46rBklWMsl5vbmvq9YnuKuW2yHdKy7thzYOOQp4zy+jik25UQP4+FPB1btmY+E/zbUHBucGLKNeSR7yXomEtoj3dD2v0hlTum/A2+b+cDScnXV5B+2KH9233KTeQENFf7ti7f9yivCflAyPYhw2YdjoPWngObkta6hvfQt/fUXwQbDQ6QKfktytKeA+sA65+ENAc6eJyHFAs0B7ZFh0+hpHW+xXLFFeXbclAn7kZ2rJQh+bdoaCXUTzHlHPEqO6ZD8tw5tEybBm8SUd3JbiHGs9d5l6anmnKQtPQM1I+x7m5p+wdMQZWv9ibemJMTfNbaGWMftTu2564mP0VI8egU5PeJcUyngs+AZtteL+cN+hJWKe+GG7E/cQUvENhtPvWobi72wQG2iUwo9xoHl4gsV+RhpNRVIXk2IsrLIeTRaEN7LJYheawc/E5AzxKrgmtal9eunlP7VCvWObtBf9lQFEVRFEVRFGUh6MuGoiiKoiiKoigLQV82FEVRFEVRFEVZCPqyoSiKoiiKoijKQti1QXzWoEG8IoOzO0HTV9d3NgZoMDIxGne2yYAUNZRgpLLNkSuU/Ge0hYaj3n2UuGeZTOcj22S4PMK6eREmllmao6mups+rGu8hIlKeRGPO0QmabvKtB+A47OM1ghDb6tSKbaq7f47tNyNTU0oJrZINcrz5tuFoVqNJM+xIQrcXTJwtOC7Ix9QUdrK3cU3mpwAN4yMK2fUWzw8psd08tU3RgYtt7stROE5PYx/EQzK2d7iigwG2sZNS/E0w/ppD2EfzDhM/DQtZK8mIfPJBOE59vGfPRbPaVs82kp1ssP3mPn5nUGF8+ZQUr/Vsg3VBSdoS6UgeukfkFcagmVIb7NhzYF2ehuO5ZV7EfsgnOK49B2PQndjxMnTQaTj0DsBxWOCmBMUQzYumZ4/pKqVklbRZx5AStjZUzpYz0IlIcxrLvjSla8xpvIY4pqMQx85ObLfFtk8majKMxxXGWEJJFy0Tuog0DfZZ0JH4ai/IBOeampJtNfWy9Z2ixTlr7ONc0UuwDyYGY8Gn5LNlZBtffdqIIzQ4LmIaF5wg0o3tNdiE5J4NsNzLGZazoYR90rFM1TmWq59RcssJbljhBpTwjMzdW6k9B+7QGpLTJhlejTHsUxkct8OAbyj5qenIgrgHZDT/tbQpULuDm++IiBQ1PgOO+2TSJw/0dIyxENImN12JndcaHBcrm3iN3vQgHHNe4nZgX7NMKSlfiLEwyrDva4c2ArBDWprjOLcc2ca+Ljdxwx4/xvkvoKSS6yN7LJ4MeQ2m+Y9CJ6LNGxzPjq0ip01vOpKH7gb9ZUNRFEVRFEVRlIWgLxuKoiiKoiiKoiwEfdlQFEVRFEVRFGUh7NqzkY5RCzbbwew19Yw0viLi+ajxm23gNXqUXKqZoA5uuo7X9G1JtwQDSoB2GnVxwxy1nkuPRf3j2JA2VETuK1HwOSyxmYZ91JFnJSUY6tDrJZT0JdxBfWhi0HuSHMe2Sw5huZ1N0hSKyIkWE1R5CervUkqaGMwPwfGkb4eD36P2rB+eXu9/S0p+lDDD2Mk6EtlJgG26M0P9stdgPxYZ9tF0jLHhdegZ/RHGaHkCz1ktUZR6aEA+JfKiiIhMqY1HJCMPl7HcJSWC8lvy4ohIMKOgLPC+UYxt1ZuQD2AJNatNZY/34wX2UUMD1msovoojcJglthbeIy1239ia+r0ineOYLXdQj11P7LJ5pJmvqV0NabrdOfZTPUUPBydlEhEJKQmpP8Z+GDQXwPEBSjo6NXZfblRYl16K832fvCe14cRP1iUlLvGa0Rzv69ZY92RKHr4ljPugsbXWs4aSp5J9LqUQDHJMkJYP7EWGbA7SN7Zfbi9ISDM/q2j97FjLDCVXLGtcI3zBfm0r8hDRvOF0rMF+TJ09xj5IM1xn+ivYb0VH/E0qWoOFdPgxJV2raW7usDVEJXlJSmwbhxKfhjnOiUFEYv/GXgunJZbTDXD+SgTnZq8mP1XQ8UhGSYXDffJs9Cbov5jtoEeonNqeWsfHv2Vbp+A49cnPQz64bIuSonZ49uIE+83fwuPRnBKSHsV7TFp73DxYYN8OYjoOMBYKWrOtRIwiklJS4GAb14aoxHLEE/r8AM5/MrafAdcNPeOkOOfyEutP0Wczt22H4qUYf/2uZ61doL9sKIqiKIqiKIqyEPRlQ1EURVEURVGUhaAvG4qiKIqiKIqiLIRdeza8B1Av1t+ivfwzWz/me6TlpPwUTYhi2CInjTftuZwEtl6572M58jHt6+yjRvA82jvb6dgyfctZgeOwPYzlLFB3WdP+8JFra7ejGOs2pbonFe1/TnkQDO0vHRa2znCVciM4Qnkj+niNgPbGd2a2HjKKaI9lf380895p1Lb2JyjGjjo2tubalJQ3oxpgLBQVtp9pUJs48G0vROLjXTLaZ308xDwLBw9TvoKVjpgOUEfuJ5g3IfcoV8cMYyFp7Wv6ffzbVCjeJqQHbTBe6wj73Svs9h4ZEny6qNeNaF96j7xQpkMKGsY4vuMu49YeEVGunP6Y9sifYN+LiATkIXAz8hR4WL+yxmu6M2yUfmyPP9+nhiPvTBviJLcUUI6VjjmwdSm/jotx6xnsO7dEzXLQkQ4lCfGPDflCQoP+gZTGq1dS3qDW1vovt3jNgLT+3hBj0BXS/me22cRNUJ8dOx2mvD3An1GOEPJqRWLnATLkK2hrXAMcF9vcI0+U62Jd+54dfwHlJnHIWyLkHRyOcH1tow4vnOC4SGmtChzK1VFhPb2OnD1JSrk5OKdIQWsded+oCGIa27uzRP9+y/HnYHOLU2NscX999SJYjijYH8+G/yBOFP1tyrMxt58BXY+9DNjmhr03NLTcDGNr4NvtM6T4q7MTcDynOfZoD2PHS+2FZ8fDjoo8nA9rmv9afj5r7UfriMZBRrmIQsH1M80o4GhqipqOHHEOxyw98yVY18BB3403tdvXi7Et4i5D1C7QXzYURVEURVEURVkI+rKhKIqiKIqiKMpC0JcNRVEURVEURVEWwq49G716FY7zGrXoTW1rXctt0uhOUIteC+rJTnn47pNu4vfTJVujtr5FuSOGqK1ryStR8l7apFkTEfED9GjQlt9SlaiNdV28R+HaIugp7emdbWHTB3STIsT29jLUyU0zWzvrjLAuIflZshlqaYOUvAGuHQ6zKfaBM+0QY+8BgxZ9C1PBujS8z7+IlDPshzJDrXBBmslTrGWfo/5x0Lf39R+TM8Q7iN6HrQRj+l97eA1vifZuFxF/CetasweD/FFBH+/RlSugnOA1qhjr1huTBnoV22ra0j227VjhPeUj6qOsQQ9H7HL8UVIEEclneM3x/qQ4EBGRYc17+2N92sb2EARjipkM271pcC7JApwHwhl5IdwOTbdLOugBxn1FeRDWI2xEL7A3Vx+lmMPBcTE+2hbr7pOXxvHtf8eqyAPV1nhNQz6gJMWx0ZCGvpiSb1BEYvKYGZoXcsqh5EdY7qDBPhYRqchrWLh2PoG9oEfLde5iP9YdWmqPPQAVebEEc8dk5LOMWsrzknZ4WjxsU29EnjJqr2mI1/Bj8ouJyAqtRWFFfijKBxIGWC83sOfAtiL/Dmveqfm8lHJAuOTVLO11vhdiTDoezrs5mRLYW9I6lNRFRCpq8qqw16G9oF+jdj+vMTYqznUiIg15ANoM+3XHxX7dpFxW6QTrujyy675DOTH8EXkrQ/zOV5KTeH6CflAREZ/6sW4oPxI979KjllShHRsbJa4PRUV+CgrHtk9+CvKBzCcdzw4DyuvSkKc0p/FNhj1f7PmvmNCz58PMM6S/bCiKoiiKoiiKshD0ZUNRFEVRFEVRlIWgLxuKoiiKoiiKoiyEXXs2Ktp334lJp1l36Agr1M55p0gr7KCGLU7x3afYQH3Z5n0dG/EPUO/ZHLkAjv2DqH9fegB14UslatNFRNaWsVkOJljOMEMNatDH86do+RARkRMGdW+bHl6jJO32nGSEaYvlLu00GxLP8R490rWK36fDNTh27PQMkhXHsVwb+yOabxqMDT9FLaJf25Kf+Q0AACAASURBVB4Wj3Jx+DtYdjdHvXK6RL6GKcbbZNvWpJoV1DjWF2Lnb52Hut/hPKRjO/6WA9RRrqYUf6SZdBM8P1u29coby9g+kxzH6w5p8JsYY3o4If2ybU+QHvVBn3xGBeXhCPo4Nitj/9tHXq7jOdv7aNqgHA5RgGUxYs+BrGP2tjjPBra7icjnNqN8O1NbM29II98Kan3zEMe9O8Z4ST1b+5uQ52JEeVYC8l94FLNl3x6Pkwb/NqUYrMiDkCfYFkGNY6ft0IjHDXnyeK4mf51HmmXTMQlWNc7NebU/uYYcMhWECdbN7fCtxVTWtkRhuM9zSQ/rb3hePW2vwU6EsdL20YtVJXiNPMdrLLW29yb1cZyskNcyLtgzRD4lO6RlRjr7WYZt0dA9avLXuQYv6rX2WEwd8ljVeA/XwzXJjUgjX3V5nWhc5Bz3F1vfWQQt52CJsA+8yh477py8gDR/Bx49A/aw/jWtweMNe+Fxe+SDO0B+11WMrwHZf4au3ebDFPtxJaR5u8CLeBH2a7bUsQaTL3dnSmuukAdmgOenNT7rlh25riKaE/tTvKbjYrwFKeW6M/bcVpb4nDSePTzPkP6yoSiKoiiKoijKQtCXDUVRFEVRFEVRFoK+bCiKoiiKoiiKshB27dnYXKc8EaR1DbdtveiE9P2zHcwPsOLQ/tq0l/u0Rl1cUtn78PsGq5AVqBss1lFvluzg537HntWnTuN9+4fR2+DmpLPcQp3bcod/IA/wb2VNfgDa//iee1GrvrSKbdUPSHgoIhHlSmhJ4xf2UZ83EjzOc7stlhOs6zr7QPaIrW3UUM5SjIV2Yrd5NkZN4/YUj4chto/fI1+DQU1lLXb8eT7GX+nQ8RTNNYMA75nGtu53a4u+cwEaeMISr1GTl2Altsdi0/A+9HhOEeG4uG+COvXVEM9fWsGxLCLSv49yHIwxvsI1rMfIx8+b1o6/pRDjb9Luj15eRCQnz0/NGuZp1z7zGEM5eQiGtB97Qu08d0krbGx9u+Ph3yrSIFekG49or/tRZmutsxz73zuIfddrMQZbkvIv+3ZbJCRjDumcuqL5f4zjIE4pN1Fs67fDHSxITTpyJ8SY67nUh46tgw5CPGdW7U+eA56f24jauOzIgUTmvpJywUT07419B9sv96gPWvvfJwOXfS/4HTej9bTAfA1rgZ07Zt7S8wX1/TDDerQujoE1Y8ff1OB9thyce2vBa07IHxX2qe2SDpPjHNeIvMRyNQHWPfEpT1Nlt4VHc3VuOryre8D2Jj3PCY4LZ2LHX0ZjeEZ6/+UA53c3xn6bORg7Vce/j/s03xUO3qOcYxnSGr2DoWv34xamiJL0IM4bHvmOKLRkybfX9VrwJBNie84LPD5Oz9SjAZYh7dvzX7yNk6wp8DiM0Xe0JFj3prE9kQ49T8xre47cDfrLhqIoiqIoiqIoC0FfNhRFURRFURRFWQj6sqEoiqIoiqIoykLQlw1FURRFURRFURbCrg3i4lESsByNJf0CE6uIiGRkyJ2Rcbop0Ey1UeLncxcNMdsr9j36KRqKllbRgNlO0SCTTNCgNfBso2tbY1KYpqFEWwEliqKEL9GWbWJdJTNVuoZ1eWAbyzEhw3O4M4Tj/pJtavJ28JptgO3bqzDZ0nAby104doK5IMIEYdPotHXOXuC7ZBzL8T05zOzYKKZkgi4xFjZLbI91D+M1D9BINl2xE/X0ltEotryGbeqVWO5hhcbHlalt8hoElNFxxvfFsRjR2IwetGPjwDb+bYkSwW3MMaaL+/E46qPhbdgx3n3qk8bB8dtvMJaGEzSjtTVuxCAiUntH4Ljap/gTEQk8SrxZYpvEHebitsD+rV08Z05xy1eoIvzcJPa/DyVDjLHkAMZD0OJV16hflpuODI0OzoEJlTP0Me5jF9uit96VYI4SZZHpdzzDmJMdvGaaoZk0CjqMspRItmpx7PSoWP0CN+Jwfdq0RERyoQxxkXXKnhD4uEbMKYlfwC59EXEaNMd6ZIJuDK6HRYZ91Lp4nI3sucUnM+wwxTnOneHnRzJcyw52mFK9HMvVKygRpaCDN6aEh71te64e0CYZB3tYru05tu/JOcZSXOF6YBI7c2BdYDkCeoaJyJCbFriBjW/sa2b0t3HQYUzfAzwX23xO+yTElR1/Ba8rlA12k5Lcjuk5qaRNg+bL9rzS75PpfA3nOy/Dcg0qXIeWM3veHjSUCHWbkzOeguPIw3v0HrDnaV4elpYw/k7NMBaKTVzr4hyfVwa+/fge5Pi3yuBklVDSyOUJr6f2/Ff4+Fy4Hjy8TVr0lw1FURRFURRFURaCvmwoiqIoiqIoirIQ9GVDURRFURRFUZSFsGvPxollSojTkLYzt5OYuKTt8hp8t9mihDabDRWnQc9B4dvautIhLTol80lq1Gnu+FgmP0X9qIiIs43auPYk1vXgk7CcuY/1mp609aJVjRpUCVAf6lNSmAMVagbXNlDruNLR3oYk78dXsJzhDNtqOTgIx/PI1otuUBI1E+yPYHmjh30/9rDN46Yj2Q9KICWgBEs7EfbThJI1OpR0clKRplxEGkoaxraOnkOaUx9PiFYw1kREwh38m7OBdT98KZYzo+Ro1f12/LUOfieY4DVjg/rkQ6RdP7yJAXqgsbWz7gjPOU061nCK8bi6cxSOmxY10SIiJwzWxfHtpHZ7xXSJNPMOJYSL7GRvgU/Jx1rsqyLENsoE6xsI9ksZ2OPeC/GaK5Q4zK/J90HnDwa2TldynHvJFiRHzsN4qigxltm0db0B9a+Xo+6ZZkg51OI9UkoIFnv2etAkWLd1yiQYN6TvJv9AG6PGXkQkz0iHn9p9sBeUKSY4y33sVye0y5U0OGf5JSUj4+RjLY7rkDwbXm37K1xKjjcgU0tc4ecB+XuWA/RjiIiEY5zPA0qOeeQw+b3I7WQmtqfMq7FcRtDP0laUjLDF9TCeoGfBK2yv07yH3zkZY7nSGsfJQNAbJY09B5YN+Tf9/Ulsuj1Af9OEkjk2sw4/DyV49Kgu0wA/n9A67grG44T6TETEUCLKVQ/ns5iS6eURPTsM7GdAoQTJLiWkPvI4uqaHsVCd6Ph3fIfm5QKvGVMCzYM+lmt1hu0/8ux13vSxT04nuF72SvLv7WD8tR2eteO0ZnnJw5v/9JcNRVEURVEURVEWgr5sKIqiKIqiKIqyEPRlQ1EURVEURVGUhbBrz8Z2dT8c1y3q8ya+reHOR6jtcnLUk5W0v3FLeTjSlnwhjq1VbBz0HYwb1NwOyWKwFaFu7t9r1MF+9SKoD10eUf6JGnWVzRR1cW6L2k4RkXiAbeHNSO/dng/HbYRaumn1/8HxSoP6PRGRUYs61q+cwmvMKuzufoVavMmhE9Y1Z6QLrgNbs7sX7ORYNuNim2etrfttEvIMkGfDGNqPm+ItIX13S+0lIuIY1FXOatS6D0lzP3Px87sLW4PK8dc7gnk3vBLv2WxhTDu1nTsmGeH4jO/H8RvNL4DjwsfYKcq7sAxij5slg7rVu9axvYtN1Jguk/Zz1rfjL3PwGq3f0V57RNY8CMeG/q0mj+z5qR7heHFbHINNi31tXLxGFGK/OV2WKcqFU9H+6x75hOaUq+O0Y3uRhLS9/T7Gw4aD442Gjrgd1wz7NH7GpAVucZ51IvKFzO/DMnn2vv49g7lQHpiiBjmnPDeJobxMUYcPRHDMOuH+zIFVexKO/ZrmPFvCLV6CZQ3JQ1YaakND+VJoDvTF9iXF5NHwc7xHRDp9I1ju2dwe9wXlmVrycI6bU56ftsD5zK3sPoooH5aQByhtsB61j88SXomxlToU9CIS1/i3k/QoUFBusTTF+HMi+zlKKBeK79oxuhfMinvwDyW2V9ExObU9ir8G5/M5TRwe5UtJXewj05HLyHHRJ5ORbzcI8HhOvq77Dc7rIiIyw37oL+Ga69Nga6Y4pzqe7eeJl7HsPuVWiwzOVVkf5/VyiuUMXDvG+5Sn5L4tnFMrymuyNMR1vBjZ83bF3jDXfr7dDfrLhqIoiqIoiqIoC0FfNhRFURRFURRFWQj6sqEoiqIoiqIoykLYtWcjblDb6c/wPaUqbL2ycwC1casD8jY8gMdBRhpd0siPEnvv7CA9gPc8gZrThHJJLKfot8g2bI1aWh6B4w2SZpZ3oz50tUZNfTiwtf0rEe4pn7qozzMxfqek/fk3aA/wbzqE1xMRqZfxnFXaH3ljgt191zYmojAHUSMoIjJYRb1o1e7PHvODOcYfbdUueW6/N0e0H/5KgvUPtjD+YtKTlrQv9iCw+zVoaY/u+zCeBtF5cLzsY4w3O6gDFhFJDMb0nHIFnPxXyi0j2G9hRyqKJWcDy+WjznXqkeY5QX3pjov1itLT1j2MizHLuTi2d1CvfO865QAgn5KIyPAQltPv8M3sFYmLGluX9+2vOubAJdTV9lPsnGiHvEcOznGei8f9gT1l+wNsV5f0xlGI8TGI8Pxqx9b+hoIxyDro9U28x6ii/BRBh57doD44DKn9aL9842A8bbX4/UPJceseJsE5cIk8fOMZjtd1yqFhXDvPxmCF8g+l+5PnoNdg3fwC2691bdNGmOJ3hrSNfjMhDweNL4fybgw7fCE9IW/cKTxebnAeXaZ+9ee2DyShfpIA56P5cRwHwwrHkRfY6/qQcoOlDa4PWx6Oi4h096cFrzlM7RjPY/SjHPTwnI0G59kZ5W9wVuycD0t9zLs07bB17AX9CtcQd4bjoprbno1wiPG30qccLNt4vEN5NhryPA6TjpwsMeVkWcd+61PejWXyxTU7tmcoqdDrMC9x7jlFuayWKMaDxPaWDF1sizTGjgysnDc4jrZb9GzEPewPERGJ8BoH5/j8u11juU5uYTw6fTvPxvIS+aVi2yu3G/SXDUVRFEVRFEVRFoK+bCiKoiiKoiiKshD0ZUNRFEVRFEVRlIWwa8+G18N9+I+3qHsrjb3/fUCatNBHXWUaotfBz1EDOBnjcRrbmsC0RZ3lFG0I4jqorQtRoiaTFVsDWMWokXRpn/WItlCekC5zpcXvi4gUMWoPm2XMWzJfxvYs5rinejBHrd0p8p6IiKwuYTmWRw/AcTZGPd99J0gP79vhsLRGusJyfzwbQXAIjseUM2MmHVr+gOKvRzpfg/UPaZ/wcYn93ovsd/Okxb/NT6KeMVrC9kp7WM7pqh1/Ge3p7bp4jruNMV37GDsDH8eViIj0yY8So/6zJJ9RfRI9QWGK8bdV29rO1RTrvnII8yKwr+v4BMsZN3b8HSC5fLhP8Sci4g5wzE0znEyqnq3l912Mj9DH7wR97EvfxTaoaI99bwljUkQkDNBnUO/gNQyFrUv79M8HthC/jHC+olQd4pZ4j6mPuvu+Y/dlnlDOiz7GWO7j/JWRp8zx0FuywYUSkQH5tPo9jMF8im11egfHlhPYYyehedVPjHXOXhB6WPYJ/Vth7dhjI6K8DS55AxOXNNvkKWim2I8D154De5QfS+Z4j9hQPgsfP2+iDg14TPFTYjwGc6yrIT9F2OEtCUjPXg8wnrweLuxuheUaFHicu/bziEdepZUBjrWKnhWOlxhvVYcfIyDPXrRPtrUwwXXp5ATXlDywC++mGE8x5Vbqhzj+InoknVFekn7PXndSisliQnNuxPmzsN/nI9tfkSWU38hQQGXkdfLQexl3TBEt+XnyBOe3KsH4a7axnJGLvpGxZ99kqY/XWFn5Cl7TxxwZJ+/D9gzE9k2O+jjvxPHDW4P1lw1FURRFURRFURaCvmwoiqIoiqIoirIQ9GVDURRFURRFUZSFoC8biqIoiqIoiqIshF0bxPOCTDSrlKBvzTZLBYLJ8XIfTV7pCN2fRyo0Vh/YQPPUiR00PIuIZILneKtH4XhW4XfYoGk63rfmlCSmyNAYWvpo2hyn9+L5Azv54OllLNcy+bvLw5QksUQz1soYE3Mlse0SS/poINqQf4PjrR4afaqL0Ay0WdttMd7G+wzD/ckolE8w/lxK0OfbvjHxPUxMRnmfJDqC/XjERTPaygwvetKgqVpEpEgx/oIlTKKTJWhQndKmCY7YsZK7eE6RY78Zg+WahhjjbWxn9dvx0WC/XJG5eYTlaFO8xyqN1WRqm6ET2iTigfxuOB672N71YRwEpzM7potTaHhb7UhYuFcUDZpQzQqaBk1qG/YcSryWR/gd9wDG8ShAE2Hb4PEkt5NAVj1K6ncI23VssNw17ZLheHYMNiGaE6uajJsBJWT18B6jDvO2E2I5U0MJLlNK6kpm2r6LibYc3w4GJ8Q5bIdM0zs9LFfZw7rPHdssOikxLnvp/vwbXVthn/gpmdt59xMRSSJa4iMctz45WZdrMpTT1yelnSzPkL87OoDlqis0pRYt9mvQ2IbTiky/WY3zj4koGSZtUNAGdlsUKVYmCrDvDW+UUOPnK3O8pwnsRcfzse7bDZYro8SLLuXRLUs7wWbOhueO8boXlDNMQOj3Ejq2x0VocMzXZLyO6TnoEF2Cmk/Wc4wlEZEywn7wl/B4bjD555QSRLqevUFBlmJd8xwLWtOzwk6Ia1/Vs+NvhxIaDnk9XMX4bGnvmBXa7CjpeHZNaYOC4zVuwjHl/UXOw2tsV3b8FVt4zdHyw9sgQ3/ZUBRFURRFURRlIejLhqIoiqIoiqIoC0FfNhRFURRFURRFWQi79myMRqjbmi2hjnWG8jMREellqJ1zd0jjvIz69kGBxx5JIg84qNkVETn9IL4vuSGWq2SLwQQvmm5S1jARqfqoiXzQx+QrhYvXGKRrcDxdsxO19SkByzC8HK+5fjccr7ioY40y1Pv1U/RniIi0CWoR/RTr1jfY3QFppov7UacoItKeoOReQzup2F6wQlrEGenj69guV6/A2DBT8gT00SM0cFCXORhg8Kymti9pfQf1nu4Sad0pAY7TYh8kp+3kjLWP972vOY2fN9jPvQDrkffttujPcOwN3afAcfPle+B4Jcd6xCfwej3TEX/LFCsejoMeJaeK6d86jq93XPNB0ncPOiaaPaK/hOMjE0qAVtta6nBGc0FDyaAi9OO4EcZY4FFiysj2yuzMUMcckna6FtKNl3jPZI7+MBGRLEUN8mnyfQwE58AoxHJvdei30xr78mB7GI7LHUx0Oiwo+VtBeneHsquKSJngPcSneZStJJwQbGonpzVzrJvXs+eBvWAU4JhssBstT4KISF8oKWvBvg+cKwYU014f+2C1tdeIcp0SmabobWgbHNcu+b1CS0guUiboTdoRjPHWpYS/Ada97tvxF1Hdjjh433IL46nnYL2cjBIL9shQICKVg3WLKP4GISWIpESW9Y7tXylKvGac7E/8LSfYB3PyabW+3Y+DDP/mlNSmtKaOfOw3hxIxHuCMyiKyvYl/8yk5Y+NQ/FFCvpgSfYqI1AHG+XqzgZ8bnDNT8o8VHfHXMziW+g4+79YncJ1fqrDuAXl3+qHdFg7NfxE9Ny1VFOPkETxxv70Gu6fJ6+Q9POOk/rKhKIqiKIqiKMpC0JcNRVEURVEURVEWgr5sKIqiKIqiKIqyEP4Hng3Uj60PUHv3YGTr3vwGNZKpi3kd0nXUmnseangj0pfNO/ZYDo+jtnO1j/6KKe2F77a0J/PjMf+AiEgdkxazwnvkBrWbB9ibMrLb4jGPx7rXc9Jhbj4Gj+eopVtvT8LxnP0HIlLWpClv2eOCWrtxi+VsOqR4Me3l7puHt8fy/5alBLXGp2hv7LHTsfd4hd6GcEo5McZYNy/CTc89H/t97thtHmyglnN1ink1Zhfgd/wSc39E56NuU0Rki+NPsF8L0n4emOM1nZGd4+AxF2L8yXGMvySnsXkSP9/cwnvmxvYl1S5+Jw/Ij1Ci32KWU04JY4+biK4R2F2wZ6RLGA8e5SSY1R1aavZJzbENHNJj1w6e7wQ4BxZtR56DHdTZxoJzRTFi3TTGS33EbvdZhFrfjHxC0mJdoznO5U2Xh2oZ58l8G8e0u0GePurrTQfLNK3tnD8t5XopPbyIQ+2bkca+TTq0/pRXww/3JwgHEcbfzMP2mnr2cl5V5Pmpcf72N0hDTz6GsMb2NIWd5yXYwPlpGFBeF/LXBRXq3cM1u9xzD/vFRORXoZw3YYHXdEN7LK6uYT825GMLOZ9FjuXaKslPYez443EzCXFdclqc2+uCjKnGLndM/RzWtq9jLxgNca1bp9w7J8X2H/rkF4tzjK9oTp7HCK8RuhhvhdjxF57GGF0b4j3zA9hPXoHPRdFhe/4bxzjvujXOsTWtyUmG66fb4V85/zzyxm1jrMSncT2Mp9i+m5TrruB4FJGG5ojCx3HkCh5nBV2j4+eHmHIXRaawT9oF+suGoiiKoiiKoigLQV82FEVRFEVRFEVZCPqyoSiKoiiKoijKQti1Z6PZQg3aMEPtcXReR74Ayi2RL+M1Nk+RLthHTdoRkufNNlFzLyJSk27w4BC/lIWo18sM3mNt2d63vrdDGsA+avqyGHWV9RbqR+PDHXvMH8C6T7+M/pNDy+gdcVjzXKGhYuLYmvmTEWoRjY/tbwKs+4Y5hZ8POjSXHvoYGsmtc/aC+kHUvg4j3Gc9WrNzBTQF9n0RYHucOrEOx9MI2/gg7Qk+mdl62opyRxw4TLrKHGN8PKHzL7TbPDmFsbE2wr7OY6xXU6BGP3Ht/d8HtC949p84TpZd8k+5eA+HzBLz3NYrn6pJfywX4zVb/M7YxXHm+bYG1VTo4zJij9e9oipQx5tQvgovsn1DdYLt1tK+55ub2HezCuu3kmObzCgmRURMjDEXp3jPsY/xUxq85lLP9vhIjRr5gPbDz0nbP60xnsKhrYNu+zjH5acxzpcoP0xF3rgyoJwYjh2D0wTj3CENuOtSvh4f61k39jX9hHK7BPvzb3TeBONvUGDdZp5dLofWO0N5Wna2UIffunjNtTmO0Xpqj7+wxPVvuY969srFmK0MxkrUs31r0QTnsAH5CWuf/Ibk1XEHPBeJhCnGX3kS14M+rSns73HIk1Z0eDZ2Wmy/osZ5tRKMpblDntLAHt9uQ3lezK4f2x5R2tM4VoY1eR+G9vzXUvyVtHZtHcfYyQKcmw4WGAfzub1GtD49r63RNRv8TpFhPdZi24caTdD7O+rhOWWIsdJkeE8/tvO3JSH29ew0fudAgM+3TkTzDuUpmtd2uTeEvCMNXsOjeJuQJ9CkHc/DDo4152HadvWXDUVRFEVRFEVRFoK+bCiKoiiKoiiKshD0ZUNRFEVRFEVRlIWwa/HfTnMRHOclJ2VYs76TG9QfxiTpay/E/d63t1Fve76HWrueY+swT8WoR/7PZdTBGdqX2Xsclnt+wL7mylHUGXoFalDdmvbr9lEHl6eoCRQROTXBa5wf4zUS9z/xHuQ1ORqjDvvE4Kh1j+Eq1mWZ9irfmd8Px+MK2zenPdVFROo+7Y3vjaxz9oJJeSGWI8d+dDt0v/kc+7Hnk35+CeNtO8cAPUL7m6eR7Qs5sYTazLs93I9bKDeMv4qCx8yW/craCMsZGbyGt4O64NZgOcup7dnY3kbt5mOm+J1BgflBvCmWM6acJSd7tn9qKcBYWaF/y5jNsB5ZQVrurrwJEeqVS78jl8UeUXiohy1crJ/p0OnmLfkpQsof4KEedkp5EZbJX+G3ti56K8Uxed8yxo9x8djtk3dmGXW7IiJ9ypWQVqhhdsifY0gLvNOzk/as19jfKxF+xynvxS/EWPcR+Stmkb18hUsYlyPKs1GTByb3sS1a1xYkOymWs+53JCTaA7IK18uWiurV9t7+rcF481zKVzHCfiwybC8vwe/7je3vmQ2xzU8l2C+ug+tKeoh0+H07b0m/j/p0l7T7fkkx3cPjwre9heMp9tuqh2MpqCnGW3y2WKE8Jluh/cwzpDUiNDhXTyi3R1ax/87+91/Xd/kP1jl7wbQ9AscF5SFx+vaakJfkM6L8WO0yzpk7BfbjYRq/cUfd1/vo67srpVxEDj57BYewDDuxHX+jHuWSoFxrXoWft+RFmbd4TxGR9RPYj4fpOTKqHsR7lFjXw+Sj3Ozw2A4TbM9VSp6WT7BtCoq/ssMHIvR8W8UPb/7TXzYURVEURVEURVkI+rKhKIqiKIqiKMpC0JcNRVEURVEURVEWgr5sKIqiKIqiKIqyEHbtNKpdNDLOD+JxldqG5bhFM+d0jgasfI7mNMeg0THtoSnMSeziZmQY7fXwnJqM2B6ZWL2LMGmdiIjjobnsIkrYErtowrmvxHLnsW1irSk/y5gSzDUGjcXJHJMtVWTMLtZsc9p8FeuSbxyHY38bDUVJjabqqdvx7tljQ+v+JFVrWuzXjJKGVZ7dj65Bg99sgkkMCzJJ+xSvUYpGsnBoG6MGCbZZ7KFxzERokAs8LJM3tGPF89G4+E2UyC0lH+iDM4zHjYltFHVaNIZm5DP2HDSnJTXGY0nx16b2xgrVEP+2vo5JE8MtbKt+huXecmzzqZvQHBDaSZ32ipaqXI2wEevITmTnUfKxIkOjIafw8ilhnEfzRhjYBvEgxrHhDch0muJc49DGBw36jkVEpKaEoEsl9kNAicU2cxqPxi5n1uI8OqGkaG2OCQ7jCWV1pfGc9WyDZDnABtvK0KgZz7HuSY3lrHq2WdQdUgwO9ykGqb3KHrZH63WM+5o2L6G5pJ3jfOU12K8BLbnewE4m29CyEaS0QUWAZWiFEqKt2utOQ0b05QzXnViwLbYz2jSj49GmoQRzeQ/nXtNgrIQ5bS7gYBK7tm+vhW2C15yPqS2mOE56JbbnvLXbwqc50OtI/LcXtLS5RUaJh6vYXhP8Ev82zXENzmfYxiFtdhJSkrkwtdsnoWe8MMUx3VLiXc/H+DNH7LnKCH7naEabHTlYrhO0luUdSZcrwflv2qO6NCfgMKmx35sAn3HqIS0OIlLTnLB+CmM6Iu98j0z+lWfPbR4Z7t2uJLC7QH/ZUBRFURRFURRlT5MlyAAAHeVJREFUIejLhqIoiqIoiqIoC0FfNhRFURRFURRFWQi79mz0598Mxw1p7eoOvWiUosZss0Sd25hy33k56kdPRKilK2yJmgyWUGN2JETN2sYMtZ1Jjeefl1MSNhHpOaizbzx8JysOUkI0g5+X67amLWwwodkpSig0p+xuQYzazp0aNfPGs7X+G5RTLDuFuuujHuonkwbbO8hQTyki0p9hW7htRxa6PaC3801wXFDyrYNlh96fNPSnKanTZB01vP0Wk0+dHGCMl6mt0U2XMZ4O1xTj9+M90h5qPy+MbI3kkJL4OSH2U7WC11whnbWD0s+v3tegX2p7Sn6DKQ7GOWUM2ynwHq1nx8FkmTTRU9R6Hq2xP/oNliHPSVAqIks9LFfg2fravSJxMalfRQmnKrdD79+ncUx9NS2x/5Ma67vhYjwVqR3nwQpeYxhTgr0Wtb8RJYda9exEThHPgQnGIGuD3RbvGZzs0LMbvMZGiu2VN9j/ISV7Kyu6Z2TfoxpgXUu65uEexk9E2v/AtWMwdf9rX8NeERfoGWhy8uLs2O0RpTjnFQWtO3NKGlljXXd8/LztiJV+H2N2RPGVTUmXT0nCDnaM+5SSprmC12h6eI/IJR/Sdsd6YMgzVGF75SXWLRRsq4wSGZvavkfuYDkzSkaYVLhIpxV5iAo7IXBM8ww/j+wVSY4ez0HAyWQpEZ6I+CE+c2xS3uDxDOs7bLCupwTjr0js+EvJW7lK7bVDD5opPSOet2N7YHo1+sUaB+tWLuNx4mJsVKetS4rv4jU3c3puLHD9DA3WdU5jVzqSEc6WsK45JWM9TzDpZM/hMYDPHiIiQ3q2CuwcsLtCf9lQFEVRFEVRFGUh6MuGoiiKoiiKoigLQV82FEVRFEVRFEVZCLsWn3qb58FxXaL+sT5kX2qF8lEMadv0hPSMWwGef6+gLyFsbbHYlDTOUw911eclqJluerjv8JHA3g85ylDX9mCEfpRwiHrRxxvc43uwRXtri0juY9mTw/idzdNLcDypUJ/nZah97JB2ys4WavwOTDH3SUKemSntm73q2vvWtyXWtSoe3h7L/1uCjSNw3I4x/pqRXa5RgzrK3jb6XoIa22uTtJwncjQJuUIBLCI7m9jXM8q5cp6H5RbyYxzBcBQRkX5BXhPSqfZ6qO08r8WcK+vb+LmISOmiN2k0xLE2nmOMb1cYb35J+SI2bH1u4WNbHNjEsTiY4xyR+xhbhyI7j4mUqEttTcc5e4RP47ydY31Na8dgRD6DtRJjylBum50hHq9HZFSL7LnF0L77swDnr2Wa45oIzx/wfu8iEhQYDxsxzkfuMs4dByss5+a27UVqDU5a8Qjn94x8aGPaAz6eYRmM2G1R1Pid1QbjOCTZc5vgvLwU2H3odPiT9gN/gmPWIY23WbY13CnlEhrl2MZpjbFR0D7725RcJnRRAy4i0pJGviZv1irlzzE+zh0rxi53RPPPzONcCRizSzRO5o0df3yXcBnn1dkWljurcK7xqC0aezmQqsVxMdzBdT3Isb2n1DZLru1JK2kNbnb/2PaI4s1xXqkp/uoOP1m/wn46b4z95FfYK1s0vT/QYp94DZk+RGQnw3JMHSznERcTCdUxzkMrHd6bhHLAnaS8aD6tXRcKnr9R2mtw7ZN/cxXrNtvAa2xV2M+hoWfZHfseMx8b8MAE4y+hmK5DXAsOhB3zH4/P4uHFn/6yoSiKoiiKoijKQtCXDUVRFEVRFEVRFoK+bCiKoiiKoiiKshB2Lb6iLX8lyFG/7M/sS7U+atAOCOrFGtLOlcFhOJ4to/ZO5HPWPdwR6j+3E9wL2t/E3BFrMZ7/72N7j2+nugiOM9LrPSVArdwBH/XNRWTr2ccHUCs7WyEfyDJ+Xs7wnvVdqKXb6tBE3z3Ba5Zz1H+WLbbnLME+67m2HrIirWzi2vfdCxxBLWw4R/1ih9RaDOn7D9QYj62DdWlczAuz06N7BHYCC5d8ChPvQjheH6Mm/GCI8faf99m6y6hGn0c9wnI/bRmvecDBfzMwha2BnqJ0U/IQv9M7hFra6RwbNLsbrzk+ZcfBvZuoR3YKygVjMP7yAX4+8GxPVkl74/dl//JsmAB1uj7NZ16XnYm05b0Y2znzaS/1CNsoW8I28sK7rFu4lI9ikuI12gz9Or0+zk/3duiL5f9v70zaGznSI/xl7RsALt3UaDSLffX//x/2D5h5xlZLrabYzQVA7ZsPPkVkHfi0BfIS761IoJbMrzKryIiMFcfRgf4s9fcM+79IcCypS3+fPeV/DKwPrrA9hzPqiafPtOb+hmb5+YVqkHIMwoA8MznOY1Xum+GmAtsrSd7HwxGsNAbSuvvjho8voPq6mrGeUoftdSRd+Jhjx7v1q3cM9rQMIbZpfcZ+OyToW3t42sgHGXEsnhPst79VeF17h/X3ZH4f9Tm1F3kxs1tsi4E8Q8MX3Gdz9MfAhxe8F68pCyUb8ZjnjLI7nH/eLfW7vY9t0hxlrsQt+Up7/2/XK+U1XQdYf2OG82eXoOexucJ+jyM/wCIucBx4yv8C28GRPEIlzin/+Or3Yzjgs2hfoF/qP2bO9qCxy/nZHU1Fz2MlzR8Z5bm12NHdz1hb9YtfK/dH3OfS0Bw843WMGT4Y7CPfRNpF2F5F4medvAb9Z0MIIYQQQghxEfSyIYQQQgghhLgIetkQQgghhBBCXIRXezbyD6hrSyiTYdqTNszM9nvcfduj1mus8TtXJ9S53ZCUbvcBdXRmZvkd6vFK0oG7FtcFL0PUpD1O/vvWdEvn2aKX4dM9aQR/pLXwA79Zkxq1cZ9esP3cAfV8ncNjvCy0/v7R1+t9XkgTmOFC4A8rfueRtLJ3q3/eH/9C61zHvq7+LciusZ/vyH8xJH5eSoXyWBsb0hqesE0/tnhtty3qH/MD5lmYmSV7PEi+wzYMXlCfXLXYJ6fZ78fjAQs/eMT6+/wvFGef7vA6os4X9RZfsb0ePqF2MyxIz0wZBkfKOPj26N83D4btu+Z47UdaU/7pkTw1oa/d/uFv2K9Z7H/mrYhusAb3RhkFG2vkJwnqbNsez38YWdONx0gp3yK+Yh+bmbvBcTPZUd/cY/0EGW5/G/37fqxwn0uHNRm1eJ5ZSd6IbKufyB/wjNcWkY+oC8mzQVNMa/49/43W7beEfIEB1jXFuNgNf9/Mbgrso7Dw9dhvQbLDOSGiHCrL/X4sc+pHqjeWlu8b7LeIzHBZReYvM0up79ME72tH+yxnrJ1m3MiWyLAf5hZr49s3vI5+Tz7J2c/jCRv82dMjjYExtt9I82VH9wlnE5mZPQ/kSwqw/hKat74d8TqSYMO/cov7jOP38Qwl13jvfMjxuWdwfv0VNP71NWWy1Hi9Vy0e47DgPoudX3/RNc3TO/KSdDjeZQs+A37bqL+5wvFurXH70+9Yb483OBZFiz8/ujNlq1GuRlziebTG9wnWwbH2x78vE7bnEn+D7drh7080r98lvn/ljh6748P3+Xb1nw0hhBBCCCHERdDLhhBCCCGEEOIi6GVDCCGEEEIIcRFe7dkoA/IMjJRPMfjZEo+kdT0FqDntF/zOD8+orfvTPX6/XH0tek6ZFsn6n7CdrXjMz6d/g+1pR34LM7MPqOWMyNvw84Q6zOiEn48HXCvazCw9oR/glxPqDOsW9XdtjGLaR1rT+9uGbLgt8Yf3E7bflwm1ijV5AaIFr8PM7OoGdcF9+ux95i3Yk6zytxavJQx93eWxxDZ9MfxOR9rNj2fUk354oNraWLs9M+zXePwv/P2Av394+Am23ZWvu4wL/Flco471M2mg099R+5mSH8jMrCCN/f1XPEbTcf1hvz8fsbaeNnxJQ0meoBlr9nlF/1T9jO2dh74G+u5HvJZxI8PmrSh3eOyvZ9x2G+uPH0nL+9ximzQj1kdxxpqsRvRoBIvvKXAhjUcL6nQjysT43chvl6Mvy8xsucXxfj5jzd0HeO0UtWBh7Pdl+YLf+e1MHh/yVAWk1+6oBsfV/1tZT16RpwTH/yHAeWtuKbtiI8flQNkc0zv5hhJq5HqgYI3Fr78mxb4/kofAkTfrhjT117Ruf7JsjIEOvxMtv8J2bNhv5xpF4Gu6kZ2T41wfDXgdX2fK/TnjfRIOfv2leKn2eCaPUIvfmRyeV3PGczqN/rNDS2E7PfnYxgnr73Sm9g/8fUYHupbEHwPegiqnOaTFfg0i/3487vFnJ7r/ugDHu+se54ibF/RoJJH/4BOl6INMHOZhZeR9uD9jhtBY+G0eHHDscRMe91fajijjLOr9fVbP+J1fnrFWxgGPOdEzzYnmm3r175uO7vev5P092j1s9y/kGUz8ef3WcH4You+bg/WfDSGEEEIIIcRF0MuGEEIIIYQQ4iLoZUMIIYQQQghxEfSyIYQQQgghhLgIrzaIT7+ROWpC48kUkfvKzNYTGXcyNJddZWg+u7nF07muv8L27sU35sVkOLoiQ9ZpQTOae0CzS//kG3QLCjjLz7ew3dVo/mkHNFaPIRqQzMweQjTNfTqRWXtGk29CoUVVi9cZ3/om9F2F1/a84me+TGgcTRu8zqD3DUcvv6CpaY5eXTJ/KNMD9n1To0lpvt0ImmmxRouEzHjY5HZ1i/X5geqvfPbNaeGKNX4gA2/d3sD26SuZwPAQZmaWB3ivVS+4j+mRTPs7uhDzwweP02+w/fmI591Q2FRK2Y37Aesvv/Pr76rC+/noKEhwxgUJcgopijq//k5fsF+d72V+MxYKdup7rMEp82twJfNsfMAaOyzYBgl5+3NaRCPaCP1a6TyyHY4d54Lqg8Ish3FjXCVDbjZR6OOEfT0Yfj7MfYPkecWQx6+0yMOc4j7LM95vpcMaTG/84LaCFiVhE/lxxjFgTyFYzvnG4oZM0+6d/kY3HfFc65HG5tA3broeb+QwxjYsyWxc7HGfRYfbeecfIyIDbmUUXLngTRtx/QX+wi+OAjITCtCbaryP+hTn8cD8RTJODuvtd1o0Y6Aajxo8RozTie0K/35P6Jmmnum5aaY5hMIH1w3vd0MLI4TD+4T6zXQeLYUwz/uNOXjGRksLuv9oyK8cXts1hfxljX8M94iLHlQUDtsstMgGBdKOL357FgnuIzvjnEvrelhHQ2wU+hPVS4Bz7m/0TDfSfZJT4GPVY1sUt/4xxgMt9EL190InXtKaEuHGogenR7xPVvMXongN+s+GEEIIIYQQ4iLoZUMIIYQQQghxEfSyIYQQQgghhLgIrxbgnyYMcxsi1OIFk+/ZcC3qww4R6snKBoVu1wFu7zM8vYC06mZm3RFDX+4D/Mx/U3DU+ZFEggHq+czMlgA1fHN4jcdMUSPYNbh9e+0LLw8UXPQhRv1eUGOYze0RtXaHBPV9TwPq383MzvekTZzxvBoKYtyNqINd6BhmZv2IOtfk+X1E8+cZ9d5TivUXBv65hwu2EetDiwnftdlDdAhJiPngewqGBrXBj7/jZ34+ofazxW62cPE1kiHp/MMZPUNjhP3a13iffdz5GvwswvO6ybC9wiesx9sG22af4zFeZv9+b57xXgwX7KPO8Lz3hr6PuaSQMjMbDNuip5Cnt6QJqAZz1Cy7Dd9aSH11yLEf1g5rLs1Iq+4oUG4jzLMjzfvziPv8ncLyugbbdN4IslufUBs9Ge6TA88WCsjMc1/XGx6w5voWDUs9BZfe0Di8o+8Pie/ZWFdsr57mpYDGhCrDOWmK/fMeQ2yvsfPnjLegXfHcp4j8TObfP8b9QgF7JXlW8givP87J03jy/RXDSAGgJ/zOY41jyURzcrT4jyErhQfOK847E2n7xx77aLcRfJdS3+YU+LgOuF3RfZRFeMx2w2DhaNycyGIQk4Y+iui+2gpMo2tdOt9X9BacKSx0yshLEpKRwcyc4XNjleC1ZC32fUV+2V2M9/Py5N+fXY9t/viM9fgrPSo1FNK8rL5v1wXYccuCzwITBRiOPd5nN4W/zyzH+vpQYnuejxi493HAYxwybN96Za+m2XTG+fE04nXMC46H1xFdV74xB1OAa19/3/in/2wIIYQQQgghLoJeNoQQQgghhBAXQS8bQgghhBBCiIvwas+G4zW8HWldO1qE2sxW8kcEpDeeaH3josQPLCnqG/vS1yoe6XXp6Quex2//wt+fj3/DH5S+Zr44YbOkMR4k+DP5KX7CfSS/+trtKMLv3NWo9b/7TOsf9/j5bodZHseT3xbzjPsMStxHuuB1RKwX31gbP5tQn+emyvvMW+Bi0hKSznfeWJ98IX1xMJMOmHJbypxqPMP2HDbW9T9Tmz49oa78/p+k833+M55T5ms7S5K+Zg51quFH/P11hBrVtPXvxZg0pnc9XtsPT1izJWVgdAV+//Ti199I/ie3w2tLAvxOuOA5xJG/3nkSYD87d+N95q0IyOfiZhp8oo0xkNbVX8hOszhsdxfjmBnTQujThr54IX36U4vteH7CfXY96nqXjWlgYU/eSkVJ1q1yj/dOOfna34T9ExkeI6L13MuY6oFyTM6T7x8YaZ34mGx+qWH7heQ3iHP/729xhp9x8/v4hlbyBM3sm9lY/37usI3cip9ZWizImPIFEvLF9JVfKz21aUcesvMX0sjXqBMPQ7+m0568I/T7sMRrL6hLgpPv4QuMnjdWbBuKgPD8FUNK+Uad7yFtJxzjOjrxha5kJk9WlGz8/ZfGhHXytfpvgcuP9BO6lsAf/+aesonIgzcOWCsZXf9aUR8Efq2c6cHy6Yhjz8PPuM/6RHOIv0vLyMuUGdZTRPW2z/G60jPmWpmZpZRH89Hhef9IOU4VPVtMdJ5du+FfWen+LCgrJsKB29FAHnLwhpmFGdboat83B+s/G0IIIYQQQoiLoJcNIYQQQgghxEXQy4YQQgghhBDiIrzasxEdcE38cCX9f4NZFGZm04p6sWZA7eHYoMavSVAvNlyhOP269LViIemoo3+SJrchbXlMetHS112G9JWXBn0KS00aVFq3uR58z8aOdakO28+teB2L4T5nkqAmjZ93sSMhYR3jhZQLaf9r1Blmi6+BDgLU1TvyhbwV8Q32QThi+8Un30sytqQXJTniaUANal/RmtQHzLe4OvjHiGNcRzz9B55XQrfYsMP6iw5+xkFUYd+fzlijqyPh/8T152tndyHtg7SvrkLtbE/77OnvEsHot0UeU/3RmvE5acyDDveZbWT1BD3qRd136kX/CJIr8qBM5CnYaJNwwXYfSTM/rHjNdYb3ZHSNbVRuZEuEpLNfH3AfjvxidcreJD+XJaaxuO2wjtcc75UwwmO2G4EgjvTaGfmIQlq+PR7oumasn2rwxdYz+esays4JHV5HTPNYHvptEc441gbB++QcsAfK+1vhsJEZRVkRnaMxccYxcIiw33i82u02MjECCjL4Qr8Psf7mEs9pqznXhGq2pboP2cuE53WeN7KGaHvhOZn07XOE++xW3MO8+O29UlbYyLfrQvuYcXwIzD/vlcaQJfCfWd6C+JY8dy1lhhz9sXmdKfdmpHllwXynlrI7hhu81p3zfaUxlWTyPzjOxJ9x3HBXlGNV+fNOTI9XdU0dmdLYT1lH/eD7D/f0eBVwhgj5QMaR5oqA7pvRfxZLI9xnQ3kfCc3Ba4u/j50/bi/Uh0vyfZ4h/WdDCCGEEEIIcRH0siGEEEIIIYS4CHrZEEIIIYQQQlyEV3s22vUbbMclZTrEG54NMj8kKWYMjAvus0tRO3cqP+AOO1/fHi6oY8tp/e2bv5Lf4kzriOe+BjoNUG+XXKNGLTjg75f2CbbHDS1nN9CayaRPn0kj7xbU0g3kE2k3ciXSA2rrbmgfZYD6SMdr0G/sM+/xPIv4ffTKHdVfsifvTYyeIjOzgfSdaXKHv7d72O5LNMbU1/j5wJd2WhCg/r0ijf3Hf8f6cg1luKS+9yZNUFedHrCewg+k6+X622iLNsTjLsMn2J4zvLirBdtuavCYnfP9PQXpu28SvLYd5QTEMe4jWf01vgvyNOwS34/yVkwO/TnZDseaZPa11H1IngEaN/sJ78muQO9MtCdNty+ptYz+ZJTvsa/Sv+IHji/kCyl8nXhAOvuerjXa03r55I+yyK+PlKabeca+XBO8l+KQxlmqQV533sxsT7lJGQu6VzzPOMFjpBuBPbnheRbJxkDwBgy01n+QYwMEG2PzGuA9mKakeSfv1pBh/Z0qrNex2+hXRxr4Hd7H6Z/w83ND2vPY36cjT0ZY4XkHFfYb19/M/W5mI+eS9NieE+XV5OSN6Bv8frPx9ORS0sAn+KGSsj1WyhZyi19/IeWnJLH/HPQWdO4RtuMryp/Z0PIHCz5/lZRd1SfUxlfo/2nucC5zG8+AjnwG1Q/kDR7Jp3Ckscyfgi2l8S+9xZqNbqifGqy/acML3LHfZMDnD6u4FrB2xgbrgP19ZmYFeUD3NEZUNKbGdMyYxkczszTA41bZ9z0D6j8bQgghhBBCiIuglw0hhBBCCCHERdDLhhBCCCGEEOIi6GVDCCGEEEIIcRFebRAPyKA8z2jmG8lYZmbWGplkFtxHHKB5KDMK/XJoXmkr35gSzPi+tGRoll0PeJ77Bd1q07H29rkjo931Ac1CI4WqsWepPvrGnXEio7phYNzY4bXWM3ZNT76d1fxwm3XFEMQbRyY7CrBqDQOdMvvJ22c5oTmyjH0T71sQddim64L9uqR+/fWOAh4D7LcsR7NaRGsFJCn1e+E7UgNKbRqu0EQcTNhx108U6rRRK4cU95lQsNGY0b1HJrD6ZeO2ntAF54If8PdsFKV7caK2SALfVRdluM+7DL8Th9g2nUOjbbb6BsOSzJFV9Ooh6w8nGbHdB/pbzZr7fckG3dCwHvh60gjbPeUARz830IwMktOIY9qu4PBE/PrY+X9zKio8j7DCz4xkNBxLCoXcqMGIE84cts1C4xXvYWXTcLGxuEeK9/Qu5fZEU/DYU9Agp3mZWU7hb/k71aAb8Vw5g3VOfKP1xIl5tAhDzO5YWhxlpHFhLv1jdBxMR88CK62XslKwYt/4+4yo3yIy/q8UvjjRHNyd/LF6HCmcjOaHie7NgZ5fRlrsYUz98SpM0NAc03UkCx2DnnGixTcWJyHee2n8Pn8jjmdanYKyQdfSfzYYySAeRthvBY2PMQXrZjt6vrvyr91NFBpJi7bwAgYfaQ4eT3797Q4U/kkLv8wJjYfXtIDP08ZiRiMZ6mlRpYVC+yZ6BlxokZfNObjE58qbAs8jC3H8G+jBMnf+Piuq4SrdWJnjFeg/G0IIIYQQQoiLoJcNIYQQQgghxEXQy4YQQgghhBDiIrxafJpkGHAWkpaznn2N2kJaw2NMwTs5adhIgzuTiD5k/bKZTQPp7xLUja9XqMfLYjxmXm7oz1LUUTYxBs205OkYKXzFXfm7nEhv3JEe9FzfwPZjjW2XkG447vyuS0lDWZB2cXXov8gn0oI6vy0KQw1fZX7oy1uQkRYxMTzXbvV1lwGVZEsNdC6p30oSF5MXItoInZsmCr+r0BO0kiY3L6k9z/55xzF+ZyjwvHu6TwYK4It82a8Z6T17Q71xW+N5nMmIlLTkI+k3amUlbTv5VYwCq0oKnUwC34dUkI51597HM2Rmlqaoxx4o7KhZsd/MzCJqpimj8CfS/hoFY0XkD3DBhi56wvFoikhfTM2a0Lha0rjxf8fF47BHI4gpmG3G8y72/nkGNL4M5GObSRvcUoBc4tWkX4MVjavZgufhVtIf0yCRrH4N5nStefg+oWpJgu3VU7DmNG/cG+TB6ELU3Xfk83AUxLlS+4Tm1/gyY/2tIY7VjkIj0wBrOtsYr3i+HChkbYpp3OU5eLfhX2EPxoz92lNS7tJTjYf4/aj3ayU28qkt2F7riu2fU9BgtFFbCQ0i2TvZ1vIdPqO05AEdN8bmhCxDU47jX0/zkuX48JTsKbhyo/6mHsee6Zq8DimFTF5jP+59266lNAdPtI85pwujR9PSt/OYo5DIgfzGY0v1Sc94Cf0+bX0P845CJHO6Dkftt0vJM2i+Z6OkG7Taer54BfrPhhBCCCGEEOIi6GVDCCGEEEIIcRH0siGEEEIIIYS4CG5dN4ToQgghhBBCCPH/RP/ZEEIIIYQQQlwEvWwIIYQQQgghLoJeNoQQQgghhBAXQS8bQgghhBBCiIuglw0hhBBCCCHERdDLhhBCCCGEEOIi6GVDCCGEEEIIcRH0siGEEEIIIYS4CHrZEEIIIYQQQlyE/wVowPfStBnu0QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# colored noise mean\n",
    "noise_avg = []\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for cls in range(num_cls):\n",
    "#     a = noise_data[cls].mean(0).numpy()\n",
    "    a = torch.sqrt((noise_data[cls]**2).mean(0)).numpy()\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    noise_avg.append(a)\n",
    "    plt.subplot(2, 5, cls+1)\n",
    "    plt.axis('off')\n",
    "    plt.title(f'{classes[cls]}')\n",
    "    plt.imshow(a, cmap='jet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFSCAYAAACaFsJEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydfbRWZZn/ryMczvs5cEBBJJBQbDRBrRENR1CHNNFMJRzMgNIV2tvo2C+1UsBsfMmsprWasiJbI+VLUZG1nJLU1YxYlKUF6cyaEcqGlyOvh1cF9u+P1jnr7O9zcb7X3ufZz3OA72ctluveZ7/c+76v+957+3y/91WTJEliQgghhBBCCFFmjqh2BYQQQgghhBCHJvrYEEIIIYQQQhSCPjaEEEIIIYQQhaCPDSGEEEIIIUQh6GNDCCGEEEIIUQj62BBCCCGEEEIUgj42hBBCCCGEEIWgjw0hhBBCCCFEIehjQwghhBBCCFEI+tgws6lTp9rUqVOrXQ0hhKgYCxYssJqaGnv11Vd73a8c8+NTTz1lNTU19tRTT/XpPEIwdu7caQsWLFCsiUx0zYeiGAZWuwJCCCH6L1/+8perXQUhwuzcudMWLlxoZqb/iShEP0EfG0Ic4uzbt8/27t1rdXV11a6KOAg58cQT6T6KMSGEyMbOnTutsbGx2tWoCIe0jKrrZ7Hf/va3dtlll1lra6u1tbXZVVddZR0dHb0eu3DhQps0aZK1t7dba2urnXbaafaNb3zDkiRJ7XfsscfaRRddZI8//riddtpp1tDQYG9605ts0aJFJedct26dzZs3z0aNGmWDBg2ysWPH2sKFC23v3r1lvW9xcPLiiy/arFmzbPjw4VZXV2ejR4+22bNn2549e6yjo8M++MEP2oknnmjNzc121FFH2bnnnmu/+MUvUudYvXq11dTU2D333GN33HGHjR071urq6uzJJ5+s0l2J/s6f//znXudHlFGxGHvxxRftggsusMbGRhs2bJhde+211tnZWenbEgchfZ0DV69ebUceeaSZ/fUZXlNTYzU1NTZ37twq3ZHoj/z4xz+2U045xerq6mzs2LF27733luyTJIl9+ctftlNOOcUaGhpsyJAhNmPGDPvf//3fkn2feOIJO++886y1tdUaGxtt8uTJtmzZstQ+Xe+jzz33nM2YMcOGDBli48aNK+we+xuHxS8bl156qc2cOdOuvfZaW7lypd166622atUq++Uvf2m1tbXuMatXr7Z58+bZ6NGjzczs2WeftY985CP2l7/8xW677bbUvs8//7zdeOONdvPNN9vw4cPt61//ul199dV23HHH2dlnn21mf/3QOP300+2II46w2267zcaNG2fLly+3O+64w1avXm3f/OY3i20E0a95/vnn7ayzzrJhw4bZ7bffbscff7ytXbvWli5daq+99ppt2rTJzMzmz59vI0aMsO3bt9v3v/99mzp1qi1btqxELvAv//IvNn78eLv33nuttbXVjj/++CrclTgYyDM/mvkxtn79epsyZYrV1tbal7/8ZRs+fLgtXrzYPvzhD1fwjsTBSDnmwKOPPtoef/xxu+CCC+zqq6+2a665xsys+wNEiGXLltkll1xiZ555pj300EO2b98+u+eee2z9+vWp/ebNm2cPPPCAffSjH7W7777bNm3aZLfffru97W1vs+eff96GDx9uZmYPPvigzZ492y655BL71re+ZbW1tfbVr37Vzj//fPv3f/93O++881Lnveyyy+wf/uEf7Nprr7UdO3ZU7L6rTnIIM3/+/MTMkhtuuCG1ffHixYmZJQ8++GCSJEkyZcqUZMqUKQc8z759+5LXX389uf3225OhQ4cm+/fv7/7bmDFjkvr6+mTNmjXd23bt2pW0t7cn8+bN6942b968pLm5ObVfkiTJvffem5hZsnLlyr7cqjjIOffcc5PBgwcnGzZsCO2/d+/e5PXXX0/OO++85NJLL+3e/vLLLydmlowbNy557bXXiqquOATIOz/2FmM33XRTUlNTk/zud79LbZ82bVpiZsmTTz5ZyL2Ig59yzYEdHR2JmSXz588vqKbiYGbSpEnJyJEjk127dnVv27ZtW9Le3p50vRIvX748MbPkc5/7XOrYP//5z0lDQ0Py8Y9/PEmSJNmxY0fS3t6eXHzxxan99u3bl0ycODE5/fTTu7d1zbe33XZbUbfWrzmkZVRdvOc970mVZ86caQMHDuxVWvLzn//c/v7v/97a2tpswIABVltba7fddptt3LjRNmzYkNr3lFNO6f4FxMysvr7exo8fb2vWrOne9thjj9k555xjI0eOtL1793b/e8c73mFmZk8//XQ5blUchOzcudOefvppmzlzZq//B+4rX/mKnXba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/v37u//uyai6pIO//e1v7bLLLrPW1lZra2uzq666yjo6Oip1i6KfsGDBAvt//+//mZnZ2LFjraamxmpqauypp5464HzWmzyvpqbGFixYkNr24osv2qxZs2z48OFWV1dno0ePttmzZ9uePXsOWK+1a9faW97yFjv++OPtv//7v8t5y/2Sw/qXjWXLltkll1xiZ555pj300EO2b98+u+eee2z9+vXd+yRJYu9617ts2bJldsstt9jf/d3f2QsvvGDz58+35cuX2/Lly62urs7MzN73vvfZww8/bB//+Mft3HPPtVWrVtmll15q27Ztq9Ytin7Irbfeaqeffrp96EMfsn/+53+2c845x1pbW+2ee+6x1157zd75znfavHnz7Oabb7a9e/eamdmdd95pn/jEJ2zWrFl255132saNG23BggV25pln2ooVK+z44483M7P777/f5s2bZ5dffrl9/vOft61bt9rChQt7nfTEoc/ll19uV1xxhV199dX2+9//3m655RYz++sHbJY5zszsueeesz/+8Y/2qU99ysaOHWtNTU22fPlyu+KKK+yKK66wBQsWWH19va1Zs8Z+/vOfdx+3c+dOmzJlir3yyiv2iU98wiZMmGArV6602267zX7/+9/bE088Ia/cYcJ73/tee+655+wzn/mMjR8/3rZs2WLPPfecbdy4sXufdevW2Xve8x678cYbbf78+fb973/fbrnlFhs5cqTNnj2bXuPSSy+1mTNn2rXXXmsrV660W2+91VatWmW//OUvrba2tsjbE/2Ia665xjZt2mRf+tKXbMmSJXb00UebmdmJJ55oZv58loXnn3/ezjrrLBs2bJjdfvvtdvzxx9vatWtt6dKl9tprr6Xmzi7+8Ic/2IUXXmijRo2y5cuX27Bhw/p+o/2d5DBm0qRJyciRI5Ndu3Z1b9u2bVvS3t6edDXN448/nphZcs8996SOffjhhxMzS+6///4kSZJk5cqViZklN910U2q/73znO4mZJXPmzCn2ZsRBxZNPPpmYWfLoo492b5szZ05iZsmiRYtS+27evDlpaGhILrzwwtT2P/3pT0ldXV1y5ZVXJkmSJPv27UtGjBiRTJo0KbXfmjVrktra2mTMmDHF3Izot8yfP9+dvz74wQ8m9fX1yf79+8NzXJIkyZgxY5IBAwYkL730Umrfe++9NzGzZMuWLQesy5133pkcccQRyYoVK1Lbv/vd7yZmlvzkJz/Je5viIKO5uTm5/vrrD/j3KVOmJGaW/PKXv0xtP/HEE5Pzzz+/u/zyyy8nZpZ885vf7N7WFfM33HBD6tjFixcnZpY8+OCD5bkJcdDw2c9+NjGz5OWXX05tP9B85sVVF2aWzJ8/v7t87rnnJoMHD042bNhwwOt/85vfTMwsWbFiRfKzn/0saW1tTWbMmJF69zzUOWxlVDt27LAVK1bYZZddZvX19d3bW1pa7OKLL+4ud/2fOZRBvfvd77ampiZbtmyZmZk9/fTTZmY2c+bM1H4zZsywgQMP6x+QREYuv/zyVHn58uW2a9eukhh8wxveYOeee253DL700ku2bt26khgcPXq0TZ48udA6i/7NO9/5zlR5woQJtnv3btuwYUN4jut5LC5m8Ld/+7dm9tf575FHHrG//OUvJXV47LHH7M1vfrOdcsoptnfv3u5/559/fresQRwenH766fbAAw/YHXfcYc8++6y9/vrrJfuMGDHCTj/99NS2CRMm2Jo1a0LXeM973pMqz5w50wYOHGhPPvlk/oqLQw5vPouyc+dOe/rpp23mzJl25JFH0v2/9a1v2YUXXmjXXHONPfLII6l3z0Odw/ZjY/PmzbZ//34bMWJEyd96btu4caMNHDiwJJBqampsxIgR3T/7dv13+PDhqf0GDhxoQ4cOLXf1xSFKY2Ojtba2prZ1xVbXz789GTlyJI3BA20Thw84B3X9tL9r167wHNeFF4dnn322/eAHP7C9e/fa7NmzbdSoUfbmN7/ZvvOd73Tvs379envhhRestrY29a+lpcWSJNHyvIcRDz/8sM2ZM8e+/vWv25lnnmnt7e02e/ZsW7duXfc+3nOzrq7Odu3aFboGPtu7nsUYz+LwxpvPomzevNn27dtno0aNCu3/0EMPWUNDg11zzTWHnWT0sP3YGDJkiNXU1KQmty5wwtu7d2+JsSxJElu3bl231q5rYuzp9zAz27t3ryY3EcabgLpia+3atSV/+7//+z8ag2bmxrkQZvE5rosDPSQvueQSW7ZsmW3dutWeeuopGzVqlF155ZW2fPlyMzMbNmyYnXzyybZixQr336233lrMDYp+x7Bhw+wLX/iCrV692tasWWN33nmnLVmypKwLqeCc1/Us1v/8Ez3x5rOuXxzQ64jvcu3t7TZgwAB75ZVXQtdavHixvelNb7IpU6Ycdnm1DtuPjaamJjv99NNtyZIltnv37u7tnZ2d9qMf/ai73LUa0IMPPpg6/nvf+57t2LGj++9nn322mf31/9j05Lvf/W63yVeIPJx55pnW0NBQEoOvvPKK/fznP++OwRNOOMFGjBhhjzzySGq/P/3pT/bMM89UrL7i4CI6x0Wpq6uzKVOm2N13321mZr/97W/NzOyiiy6y//mf/7GhQ4faW9/61pJ/Wi3t8GT06NH24Q9/2KZNm2bPPfdc2c67ePHiVPmRRx6xvXv32tSpU8t2DXFw0POX3AjDhw+3+vp6e+GFF1Lbf/jDH6bKDQ0NNmXKFHv00UdDv8y2t7fbE088YX/zN39j55xzjj377LPBOzj4OazNBJ/+9KftggsusGnTptmNN95o+/bts7vvvtuampps06ZNZmY2bdo0O//88+2mm26ybdu22eTJk7tXajn11FPtve99r5mZnXTSSTZr1iz73Oc+ZwMGDLBzzz3XVq5caZ/73Oesra3NjjjisP2uE31k8ODBduutt9onPvEJmz17ts2aNcs2btxoCxcutPr6eps/f76ZmR1xxBG2cOFCmzdvns2YMcPe//7325YtW2zhwoV29NFHKwaFS3SO643bbrvNXnnlFTvvvPNs1KhRtmXLFvviF79otbW13Xlkrr/+evve975nZ599tt1www02YcIE279/v/3pT3+yn/70p3bjjTfapEmTir5dUWW2bt1q55xzjl155ZX2pje9yVpaWmzFihX2+OOP22WXXVa26yxZssQGDhxo06ZN616NauLEiSWeNnHoc/LJJ5uZ2Re/+EWbM2eO1dbW2gknnHDA/Wtqauyqq66yRYsW2bhx42zixIn2q1/9yr797W+X7HvffffZWWedZZMmTbKbb77ZjjvuOFu/fr0tXbrUvvrVr1pLS0tq/5aWlu5YnzZtmi1dutTOOeec8t5wf6TKBvWqs3Tp0mTChAnJoEGDktGjRyd33XVX92oWXezatSu56aabkjFjxiS1tbXJ0UcfnVx33XXJ5s2bU+favXt38k//9E/JUUcdldTX1ydnnHFGsnz58qStra1kZQxxeHOg1aiampoOeMzXv/717lhta2tLLrnkkmTlypUl+91///3JcccdlwwaNCgZP358smjRouSSSy5JTj311ELuRfRfuuayjo6O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\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAFSCAYAAACaFsJEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9eZReVZ39ve/wDFWVAZJIAkRCZLJBwqBNQJAwdAQZRAZDBzFBYRlE24bGFlAhCWIziKjtWraiRlwNyqCoEX1pJQLLboJGUdAgdq9ugmKTEMOcVNXz3HvP+0d16sfZ38Nzn8TcqpDsz1pZWefOwznn3lvP3mdHzjkHIYQQQgghhNjCxKN9AEIIIYQQQohtE31sCCGEEEIIISpBHxtCCCGEEEKIStDHhhBCCCGEEKIS9LEhhBBCCCGEqAR9bAghhBBCCCEqQR8bQgghhBBCiErQx4YQQgghhBCiEvSxIYQQQgghhKgEfWwAOOqoo3DUUUeN9mEIIcSIsWjRIkRRhD//+c8dl9sS/eN9992HKIpw3333/UXbEaKMDRs2YNGiRaprYpPY2B+KakhH+wCEEEJsvXzhC18Y7UMQoms2bNiAxYsXA4D+iCjEVoI+NoTYxsnzHFmWodFojPahiFch++67b+kyqmNCCLFpbNiwAb29vaN9GCPCNi2j2viz2K9+9SucdtppGDduHMaPH4+zzz4ba9eu7bju4sWLMXPmTEyYMAHjxo3DwQcfjK9+9atwznnL7b777jjppJNw99134+CDD0ZPTw9e//rXY8mSJWabq1evxoIFCzB16lTU63VMnz4dixcvRpZlW/S8xauTxx57DHPnzsXkyZPRaDSw2267Yd68eRgcHMTatWtxwQUXYN9998WYMWOw00474ZhjjsFPf/pTbxurVq1CFEW47rrrcNVVV2H69OloNBq49957R+msxNbOH//4x479I8uoyurYY489huOPPx69vb2YNGkSzj//fLz44osjfVriVchf2geuWrUKr3nNawAMPcOjKEIURTjnnHNG6YzE1sgPfvADHHjggWg0Gpg+fTquv/56s4xzDl/4whdw4IEHoqenBzvuuCPOOOMM/M///I9Z9p577sGxxx6LcePGobe3F4cffjiWLVvmLbPxffShhx7CGWecgR133BF77LFHZee4tbFd/LJx6qmnYs6cOTj//POxcuVKXH755Xj00Ufxs5/9DLVaLbjOqlWrsGDBAuy2224AgAcffBB/93d/hz/96U+44oorvGUffvhhXHzxxbj00ksxefJkfOUrX8G5556LPffcE0ceeSSAoQ+NQw45BHEc44orrsAee+yB5cuX46qrrsKqVavwta99rdqLILZqHn74YRxxxBGYNGkSrrzySuy111546qmnsHTpUrRaLTzzzDMAgIULF2LKlCl46aWX8J3vfAdHHXUUli1bZuQC//zP/4y9994b119/PcaNG4e99tprFM5KvBrYnP4RCNexNWvWYNasWajVavjCF76AyZMn45ZbbsEHP/jBETwj8WpkS/SBO++8M+6++24cf/zxOPfcc3HeeecBwPAHiBDLli3DKaecgsMOOwy33nor8jzHddddhzVr1njLLViwADfddBM+9KEP4dprr8UzzzyDK6+8Em9+85vx8MMPY/LkyQCAm2++GfPmzcMpp5yCr3/966jVavjSl76E4447Dv/2b/+GY4891tvuaaedhr/927/F+eefj/Xr14/YeY86bhtm4cKFDoC76KKLvOm33HKLA+Buvvlm55xzs2bNcrNmzXrF7eR57trttrvyyivdxIkTXVEUw/OmTZvmms2me+KJJ4an9ff3uwkTJrgFCxYMT1uwYIEbM2aMt5xzzl1//fUOgFu5cuVfcqriVc4xxxzjdthhB/f00093tXyWZa7dbrtjjz3WnXrqqcPTH3/8cQfA7bHHHq7ValV1uGIbYHP7x0517JJLLnFRFLlf//rX3vTZs2c7AO7ee++t5FzEq58t1QeuXbvWAXALFy6s6EjFq5mZM2e6XXbZxfX39w9Pe+GFF9yECRPcxlfi5cuXOwDu05/+tLfuH//4R9fT0+M+8pGPOOecW79+vZswYYI7+eSTveXyPHcHHHCAO+SQQ4anbexvr7jiiqpObatmm5ZRbeRd73qXV54zZw7SNO0oLfnJT36Cv/mbv8H48eORJAlqtRquuOIKrFu3Dk8//bS37IEHHjj8CwgANJtN7L333njiiSeGp9111104+uijscsuuyDLsuF/b3vb2wAA999//5Y4VfEqZMOGDbj//vsxZ86cjn+B++IXv4iDDz4YzWYTaZqiVqth2bJl+N3vfmeWffvb397xr9JCbGRz+kcgXMfuvfde7Lff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rqeeegpvfOMbsddee+G//uu/tuQpb5Vs179sLFu2DKeccgoOO+ww3HrrrcjzHNdddx3WrFkzvIxzDu94xzuwbNkyXHbZZXjLW96CRx55BAsXLsTy5cuxfPlyNBoNAMB73vMe3HbbbfjIRz6CY445Bo8++ihOPfVUvPDCC6N1imIr5PLLL8chhxyCD3zgA/inf/onHH300Rg3bhyuu+46tFotvP3tb8eCBQtw6aWXIssyAMDVV1+Nj370o5g7dy6uvvpqrFu3DosWLcJhhx2GFStWYK+99gIA3HjjjViwYAFOP/10fOYzn8Hzzz+PxYsXd+z0xLbP6aefjjPPPBPnnnsufvOb3+Cyyy4DMPQBuyl9HAA89NBD+N3vfoePf/zjmD59Ovr6+rB8+XKceeaZOPPMM7Fo0SI0m0088cQT+MlPfjK83oYNGzBr1iw8+eST+OhHP4oZM2Zg5cqVuOKKK/Cb3/wG99xzj7xy2wnvfve78dBDD+GTn/wk9t57bzz33HN46KGHsG7duuFlVq9ejXe96124+OKLsXDhQnznO9/BZZddhl122QXz5s0r3cepp56KOXPm4Pzzz8fKlStx+eWX49FHH8XPfvYz1Gq1Kk9PbEWcd955eOaZZ/D5z38ed955J3beeWcAwL777gsg3J9tCg8//DCOOOIITJo0CVdeeSX22msvPPXUU1i6dClarZbXd27kt7/9LU444QRMnToVy5cvx6RJk/7yE93acdsxM2fOdLvssovr7+8fnvbCCy+4CRMmuI2X5u6773YA3HXXXeete9tttzkA7sYbb3TOObdy5UoHwF1yySXect/85jcdADd//vxqT0a8qrj33nsdAHfHHXcMT5s/f74D4JYsWeIt++yzz7qenh53wgkneNP/8Ic/uEaj4c466yznnHN5nrspU6a4mTNness98cQTrlaruWnTplVzMmKrZeHChcH+64ILLnDNZtMVRdF1H+ecc9OmTXNJkrjf//733rLXX3+9A+Cee+65VzyWq6++2sVx7FasWOFN/9a3vuUAuB/+8Iebe5riVcaYMWPchRde+IrzZ82a5QC4n/3sZ970fffd1x133HHD5ccff9wBcF/72teGp22s8xdddJG37i233OIAuJtvvnnLnIR41fCpT33KAXCPP/64N/2V+rNQvdoIALdw4cLh8jHHHON22GEH9/TTT7/i/r/2ta85AG7FihXuxz/+sRs3bpw744wzvHfPbZ3tVka1fv16rFixAqeddhqazebw9LFjx+Lkk08eLm/8yxzLoN75zneir68Py5YtAwDcf//9AIA5c+Z4y51xxhlI0+36BySxiZx++uleefny5ejv7zd18LWvfS2OOeaY4Tr4+9//HqtXrzZ1cLfddsPhhx9e6TGLrZu3v/3tXnnGjBkYGBjA008/3XUf9/J1eTCDv/7rvwYw1P/dfvvt+NOf/mSO4a677sIb3vAGHHjggciybPjfcccdNyxrENsHhxxyCG666SZcddVVePDBB9Fut80yU6ZMwSGHHOJNmzFjBp544omu9vGud73LK8+ZMwdpmuLee+/d/AMX2xyh/qxbNmzYgPvvvx9z5szBa17zmtLlv/71r+OEE07Aeeedh9tvv91799zW2W4/Np599lkURYEpU6aYeS+ftm7dOqRpaipSFEWYMmXK8M++G/+fPHmyt1yappg4ceKWPnyxjdLb24tx48Z50zbWrY0//76cXXbZpbQOvtI0sf3AfdDGn/b7+/u77uM2EqqHRx55JL773e8iyzLMmzcPU6dOxRve8AZ885vfHF5mzZo1eOSRR1Cr1bx/Y8eOhXNOw/NuR9x2222YP38+vvKVr+Cwww7DhAkTMG/ePKxevXp4mdBzs9FooL+/v6t98LN947OY67PYvgn1Z93y7LPPIs9zTJ06tavlb731VvT09OC8887b7iSj2+3Hxo477ogoirzObSPc4WVZZoxlzjmsXr16WGu3sWN8ud8DALIsU+cmuibUAW2sW0899ZSZ97//+7+ldRBAsJ4LAXTfx23klR6Sp5xyCpYtW4bnn38e9913H6ZOnYqzzjoLy5cvBwBMmjQJ+++/P1asWBH8d/nll1dzgmKrY9KkSfjsZz+LVatW4YknnsDVV1+NO++8c4sOpMJ93sZnsf74J15OqD/b+IsDex35XW7ChAlIkgRPPvlkV/u65ZZb8PrXvx6zZs3a7nK1ttuPjb6+PhxyyCG48847MTAwMDz9xRdfxPe///3h8sbRgG6++WZv/W9/+9tYv3798PwjjzwSwNBfbF7Ot771rWGTrxCbw2GHHYaenh5TB5988kn85Cc/Ga6D++yzD6ZMmYLbb7/dW+4Pf/gDHnjggRE7XvHqots+rlsajQZmzZqFa6+9FgDwq1/9CgBw0kkn4b//+78xceJEvOlNbzL/NFra9sluu+2GD37wg5g9ezYeeuihLbbdW265xSvffvvtyLIMRx111Bbbh3h18PJfcrth8uTJaDabeOSRR7zp3/ve97xyT08PZs2ahTvuuKOrX2YnTJiAe+65B3/1V3+Fo48+Gg8++GCXZ/DqZ7s2E3ziE5/A8ccfj9mzZ+Piiy9Gnue49tpr0dfXh2eeeQYAMHv2bBx33HG45JJL8MILL+Dwww8fHqnloIMOwrvf/W4AwH777Ye5c+fi05/+NJIkwTHHHIOVK1fi05/+NMaPH4843m6/68RfyA477IDLL78cH/3oRzFv3jzMnTsX69atw+LFi9FsNrFw4UIAQBzHWLx4MRYsWIAzzjgD733ve/Hcc89h8eLF2HnnnVUHRZBu+7hOXHHFFXjyySdx7LHHYurUqXjuuefwuc99DrVabThH5sILL8S3v/1tHHnkkbjoooswY8YMFEWBP/zhD/jRj36Eiy++GDNnzqz6dMUo8/zzz+Poo4/GWWedhde//vUYO3YsVqxYgbvvvhunnXbaFtvPnXfeiTRNMXv27OHRqA444ADjaRPbPvvvvz8A4HOf+xzmz5+PWq2GffbZ5xWXj6IIZ599NpYsWYI99tgDBxxwAH7+85/jG9/4hln2hhtuwBFHHIGZM2fi0ksvxZ577ok1a9Zg6dKl+NKXvoSxY8d6y48dO3a4rs+ePRtLly7F0UcfvWVPeGtklA3qo87SpUvdjBkzXL1ed7vttpu75pprhkez2Eh/f7+75JJL3LRp01ytVnM777yze//73++effZZb1sDAwPuH/7hH9xOO+3kms2mO/TQQ93y5cvd+PHjzcgYYvvmlUaj6uvre8V1vvKVrwzX1fHjx7tTTjnFrVy50ix34403uj333NPV63W39957uyVLlrhTTjnFHXTQQZWci9h62diXrV271pu+cXSUjaOzdNvHTZs2zZ144olmP3fddZd729ve5nbddVdXr9fdTjvt5E444QT305/+1FvupZdech//+MfdPvvsM1yP999/f3fRRRe51atXb9mTF1slAwMD7vzzz3czZsxw48aNcz09PW6fffZxCxcudOvXr3fODY1Gtd9++5l158+f742q12k0ql/+8pfu5JNPdmPGjHFjx451c+fOdWvWrKn69MRWymWXXeZ22WUX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\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###### plot data mean #####\n",
    "stats = {}\n",
    "for i in range(num_cls):\n",
    "    stats[i] = 0\n",
    "    \n",
    "# all training images\n",
    "avgs = torch.zeros(len(train_loader), num_cls, 3, p, p)\n",
    "for batch_idx, (data, target) in enumerate(train_loader):\n",
    "    for i in range(num_cls):\n",
    "        subdata = data[target == i]\n",
    "        avgs[batch_idx, i] = torch.sqrt((subdata**2).mean(0))\n",
    "#         avgs[batch_idx, i] = subdata.mean(0)\n",
    "        stats[i] += subdata.shape[0]\n",
    "# # 1 batch\n",
    "# avgs = torch.zeros(1, num_cls, 3, p, p)\n",
    "# data, target = next(iter(train_loader))\n",
    "# for i in range(num_cls):\n",
    "#     subdata = data[target == i]\n",
    "#     avgs[0, i] = torch.sqrt((subdata**2).mean(0))\n",
    "#     stats[i] += subdata.shape[0]\n",
    "\n",
    "data_avg = torch.mean(avgs, dim=0)\n",
    "\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for i in range(num_cls):\n",
    "    a = data_avg[i]\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    pred = model(a[None,...].cuda())[0].max(1)[1]\n",
    "    plt.subplot(2, 5, i+1)\n",
    "    plt.axis('off')\n",
    "    plt.title(f'{classes[i]}')\n",
    "    plt.imshow(a.permute(1,2,0).mean(-1), cmap='Greys')\n",
    "plt.show()\n",
    "\n",
    "\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for i in range(num_cls):\n",
    "    a = data_avg[i]\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    pred = model(a[None,...].cuda())[0].max(1)[1]\n",
    "    plt.subplot(2, 5, i+1)\n",
    "    plt.axis('off')\n",
    "    plt.title(f'{classes[i]}')\n",
    "    plt.imshow(a.permute(1,2,0), cmap='jet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_confusion_matrix( y_pred, y_true, classes,\n",
    "                          normalize=False,\n",
    "                          title=None,\n",
    "                          cmap=plt.cm.Blues):\n",
    "  \n",
    "    import sklearn\n",
    "    from sklearn import metrics\n",
    "#     cf = sklearn.metrics.confusion_matrix(pred.numpy(), gt.numpy())  \n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \"\"\"\n",
    "    if not title:\n",
    "        if normalize:\n",
    "            title = 'Normalized confusion matrix'\n",
    "        else:\n",
    "            title = 'Confusion matrix, without normalization'\n",
    "  \n",
    "    # Compute confusion matrix\n",
    "    cm = sklearn.metrics.confusion_matrix(y_pred, y_true)\n",
    "    # Only use the labels that appear in the data\n",
    "#     classes = classes[unique_labels(y_true, y_pred)]\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / (cm.sum(axis=1)[:, np.newaxis] )\n",
    "#         print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        pass\n",
    "#         print('Confusion matrix, without normalization')\n",
    "#     print(cm)\n",
    "    fig, ax = plt.subplots()\n",
    "    im = ax.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "#     ax.figure.colorbar(im, ax=ax)\n",
    "    # We want to show all ticks...\n",
    "    ax.set(xticks=np.arange(cm.shape[1]+1)-0.5,\n",
    "           yticks=np.arange(cm.shape[0]+1)-0.5,\n",
    "           # ... and label them with the respective list entries\n",
    "           xticklabels=classes, yticklabels=classes,\n",
    "           title=title,\n",
    "           ylabel='Predicted label',\n",
    "           xlabel='True label')\n",
    "    # Rotate the tick labels and set their alignment.\n",
    "    plt.setp(ax.get_xticklabels(), rotation=45, ha=\"right\",\n",
    "             rotation_mode=\"anchor\")\n",
    "    # Loop over data dimensions and create text annotations.\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i in range(cm.shape[0]):\n",
    "        for j in range(cm.shape[1]):\n",
    "            ax.text(j, i, format(cm[i, j], fmt),\n",
    "                    ha=\"center\", va=\"center\",\n",
    "                    color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "    fig.tight_layout()\n",
    "    return ax\n",
    "np.set_printoptions(precision=2)\n",
    "# # Plot non-normalized confusion matrix\n",
    "# plot_confusion_matrix(y_test, y_pred, classes=class_names,\n",
    "#                       title='Confusion matrix, without normalization')\n",
    "# # Plot normalized confusion matrix\n",
    "# plot_confusion_matrix(y_test, y_pred, classes=class_names, normalize=True,\n",
    "#                       title='Normalized confusion matrix')\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10, 3072)\n",
      "Accuracy:  0.2167\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f786df3ce10>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##### Dot product NN #####\n",
    "\n",
    "# avg_vec = np.stack(noise_avg).reshape(num_cls, -1)\n",
    "avg_vec = np.stack(noise_avg).transpose(0, 3, 1, 2).reshape(num_cls, -1)\n",
    "# avg_vec = data_avg.mean(1).reshape(num_cls, -1).numpy()\n",
    "# avg_vec = data_avg.reshape(num_cls, -1).numpy()\n",
    "print(avg_vec.shape)\n",
    "\n",
    "pred = []\n",
    "gt = []\n",
    "templates = torch.from_numpy(avg_vec).permute(1, 0)\n",
    "templates = templates / torch.norm(templates, p=2, dim=0)\n",
    "\n",
    "for batch_idx, (data, target) in enumerate(test_loader):\n",
    "#     data = data.mean(1) # for greyscale\n",
    "    x = data.view(data.shape[0], -1)\n",
    "    x = x / torch.cat([torch.norm(x, p=2, dim=1).view(-1,1)] * x.shape[1], 1)\n",
    "    pred.append(torch.mm(x, templates).max(1)[1])\n",
    "    gt.append(target)\n",
    "pred = torch.cat(pred)\n",
    "gt = torch.cat(gt)\n",
    "\n",
    "acc = (pred==gt).sum().type(dtype=torch.float64) / len(gt)\n",
    "print('Accuracy: ', acc.numpy())\n",
    "plot_confusion_matrix(pred.numpy(), gt.numpy(), classes=list(range(10)), normalize=True,  title='Normalized confusion matrix using white noise average')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1000x400 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# cifar colored noise examples\n",
    "figure(num=None, figsize=(10, 4), dpi=100, facecolor='w', edgecolor='k')\n",
    "for i in range(10):\n",
    "    a = noise[i]\n",
    "    a = (a - a.min()) / (a.max() - a.min())\n",
    "    plt.subplot(2, 5, i+1)\n",
    "    plt.axis('off')\n",
    "    plt.imshow(a, cmap='jet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
